/* ============================================
   Service / Pillow page (オーダー枕)
   ============================================ */

/* ===== Hero ===== */
.pillow-hero {
  position: relative;
  height: 460px;
  background-color: #2a2926;
  background-image: url('/assets/images/service-hero-bed.avif');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}
.pillow-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0.6));
}
.pillow-hero__inner {
  position: relative;
  height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 20px;
  text-align: center;
  color: #fff;
}
.pillow-hero__eyebrow {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.32em;
  opacity: 0.95;
}
.pillow-hero__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 52px;
  letter-spacing: 0.02em;
  line-height: 1.25;
  margin: 0;
}
.pillow-hero__lead {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin: 0;
  opacity: 1;
}
.pillow-hero__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 16px;
}
.btn--outline-light {
  background: transparent;
  color: #fff;
  border: 1px solid #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  padding: 18px 40px;
  font-family: var(--font-zen);
  font-size: var(--fs-base);
  letter-spacing: 0.16em;
  border-radius: var(--radius-sm);
  transition: background var(--t-base), opacity var(--t-base), color var(--t-base);
}
.btn--outline-light:hover { opacity: 1; background: #fff; color: #434243; }
@media (max-width: 1023px) {
  .pillow-hero { height: 280px; }
  .pillow-hero__title { font-size: 32px; }
}
@media (max-width: 639px) {
  .pillow-hero__buttons { flex-direction: column; width: 100%; max-width: 280px; }
  .pillow-hero__buttons .btn,
  .pillow-hero__buttons .btn--outline-light { width: 100%; padding: 16px 24px; }
}

/* ===== Tagline ===== */
.pillow-tagline {
  background: #fff;
  padding: 100px 0;
}
.pillow-tagline__visual {
  aspect-ratio: 1280 / 360;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 16px;
  margin-bottom: 48px;
}
.pillow-tagline__text {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-align: center;
  color: #434243;
  margin: 0;
}
@media (max-width: 1023px) {
  .pillow-tagline { padding: 60px 0; }
  .pillow-tagline__text { font-size: 22px; }
  .pillow-tagline__visual { margin-bottom: 32px; }
}

/* ===== Section intro (ORDER MADE / SEMI ORDER / MAINTENANCE) ===== */
.pillow-section-intro {
  background: #f9f8f5;
  padding: 80px 0;
}
.pillow-section-intro__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.pillow-section-intro__divider {
  display: block;
  width: 40px;
  height: 1px;
  background: #434243;
  margin-bottom: 16px;
}
.pillow-section-intro__eyebrow {
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.32em;
  color: #8f8d86;
}
.pillow-section-intro__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 56px;
  letter-spacing: 0.02em;
  line-height: 1.25;
  color: #434243;
  margin: 0;
}
.pillow-section-intro--lg .pillow-section-intro__title { font-size: 48px; line-height: 1.25; }
.pillow-section-intro__tag {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 1.85;
  color: #434243;
  margin: 0;
  letter-spacing: 0.04em;
}
@media (max-width: 1023px) {
  .pillow-section-intro { padding: 60px 0; }
  .pillow-section-intro__title { font-size: 32px; }
  .pillow-section-intro--lg .pillow-section-intro__title { font-size: 28px; }
}

/* ===== Lineup ===== */
.pillow-lineup {
  background: #fff;
  padding: 100px 0;
}
.pillow-lineup--semi { background: #f9f8f5; }
@media (max-width: 1023px) { .pillow-lineup { padding: 60px 0; } }

.product-grid {
  display: grid;
  gap: 24px;
  margin-top: 56px;
}
.product-grid--3 { grid-template-columns: repeat(3, 1fr); }
.product-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1023px) {
  .product-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .product-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  .product-grid--3,
  .product-grid--4 { grid-template-columns: 1fr; }
}

.product-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #e5e2d8;
  transition: box-shadow var(--t-base), transform var(--t-base);
}
.product-card:hover {
  box-shadow: 0 6px 24px rgba(67, 66, 67, 0.08);
  transform: translateY(-2px);
}
.product-card__image {
  aspect-ratio: 400 / 240;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.product-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.product-card__badge {
  align-self: flex-start;
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid #c0bcb4;
  border-radius: 999px;
  font-family: var(--font-zen);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #8f8d86;
}
.product-card__name {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #434243;
  margin: 0;
}
.product-card__desc {
  font-family: var(--font-serif);
  font-size: 13px;
  line-height: 1.7;
  color: #8f8d86;
  margin: 0;
  flex: 1;
}
.product-card__price {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.04em;
  color: #434243;
  margin: 8px 0 0;
}
.product-card__price span {
  font-size: 12px;
  font-weight: 400;
  color: #8f8d86;
  margin-left: 4px;
}

/* ===== Feature ===== */
.pillow-feature {
  background: #f9f8f5;
  padding: 100px 0;
}
@media (max-width: 1023px) { .pillow-feature { padding: 60px 0; } }

.feature-main {
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 60px;
  align-items: center;
  margin-top: 56px;
  margin-bottom: 56px;
}
.feature-main__image {
  aspect-ratio: 560 / 360;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 12px;
}
.feature-main__text p {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #434243;
  margin: 0;
}
@media (max-width: 1023px) {
  .feature-main { grid-template-columns: 1fr; gap: 32px; }
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.feature-grid--2 {
  grid-template-columns: repeat(2, 1fr);
  max-width: 820px;
  margin: 0 auto;
}
.feature-card {
  background: #fff;
  border-radius: 12px;
  padding: 32px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.feature-card--image-only {
  background: transparent;
  padding: 0;
  border-radius: 0;
  align-self: center;
}
.feature-card__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
}
.feature-card__image--full {
  aspect-ratio: 1 / 1;
  background-color: transparent;
  background-size: contain;
  border-radius: 0;
}
.feature-card__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.04em;
  color: #434243;
  margin: 0;
}
.feature-card__text {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 1.85;
  color: #434243;
  margin: 0;
}
@media (max-width: 1023px) {
  .feature-grid { grid-template-columns: 1fr; }
  .feature-grid--2 { grid-template-columns: 1fr; max-width: none; }
}

/* Structure main visual (between FEATURE and 4 sub-blocks) */
.structure-main {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 56px;
  align-items: center;
  margin-top: 48px;
}
.structure-main__image {
  width: 100%;
  aspect-ratio: 3 / 2;
  background-color: #f1ede4;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 12px;
}
.structure-main__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.structure-main__text p {
  font-family: var(--font-serif);
  font-size: 16px;
  line-height: 2;
  color: #434243;
  margin: 0;
}
@media (max-width: 1023px) {
  .structure-main { grid-template-columns: 1fr; gap: 24px; }
}

/* ===== Structure ===== */
.pillow-structure {
  background: #fff;
  padding: 100px 0;
}
@media (max-width: 1023px) { .pillow-structure { padding: 60px 0; } }

.structure-block {
  margin-top: 80px;
}
.structure-block:first-of-type { margin-top: 56px; }

.structure-block__head {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 32px;
}
.structure-block__eyebrow {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: #8f8d86;
}
.structure-block__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 24px;
  letter-spacing: 0.1em;
  color: #434243;
  margin: 0;
}
@media (max-width: 767px) {
  .structure-block__title { font-size: 20px; }
}

.structure-block__cards {
  display: grid;
  gap: 24px;
}
.structure-block__cards--2 {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 1023px) {
  .structure-block__cards--2 { grid-template-columns: 1fr; }
}

.structure-card {
  background: #f9f8f5;
  border-radius: 12px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.structure-card--noborder { background: #fff; border: 1px solid #e5e2d8; }
.structure-card__badge {
  align-self: flex-start;
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid #c0bcb4;
  border-radius: 999px;
  font-family: var(--font-serif);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #8f8d86;
}
.structure-card__image {
  aspect-ratio: 3 / 2;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
}
.structure-card__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.06em;
  color: #434243;
  margin: 0;
}
.structure-card__text {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 1.85;
  color: #434243;
  margin: 0;
}

/* Fill grid (5 columns) */
.fill-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
@media (max-width: 1023px) {
  .fill-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 599px) {
  .fill-grid { grid-template-columns: repeat(2, 1fr); }
}
.fill-card {
  background: #f9f8f5;
  border-radius: 12px;
  padding: 24px 16px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.fill-card__level {
  font-family: var(--font-zen);
  font-size: 16px;
  letter-spacing: 0.12em;
  color: #434243;
  margin: 0 0 8px;
}
.fill-card__image {
  width: 100%;
  aspect-ratio: 3 / 2;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
}
.fill-card__name {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.04em;
  color: #434243;
  margin: 8px 0 0;
}
.fill-card__text {
  font-family: var(--font-serif);
  font-size: 13px;
  line-height: 1.7;
  color: #8f8d86;
  margin: 0;
}

/* ===== Flow (Order steps) ===== */
.pillow-flow {
  background: #f9f8f5;
  padding: 100px 0;
}
.pillow-flow--semi { background: #fff; }
@media (max-width: 1023px) { .pillow-flow { padding: 60px 0; } }

.flow-grid {
  list-style: none;
  margin: 56px 0 0;
  padding: 0;
  display: grid;
  gap: 24px;
}
.flow-grid--3 { grid-template-columns: repeat(3, 1fr); }
.flow-grid--5 { grid-template-columns: repeat(5, 1fr); gap: 16px; }
@media (max-width: 1023px) {
  .flow-grid--3 { grid-template-columns: 1fr; }
  .flow-grid--5 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 479px) {
  .flow-grid--5 { grid-template-columns: 1fr; }
}

.flow-step {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #e5e2d8;
}
.flow-step__image {
  aspect-ratio: 4 / 3;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.flow-step__body {
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  flex: 1;
}
.flow-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #f1ede4;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 22px;
  color: #434243;
  line-height: 1;
  margin-bottom: 4px;
}
.flow-step__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.16em;
  color: #434243;
  margin: 0;
  word-break: keep-all;
}
.flow-step__text {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 1.85;
  color: #434243;
  margin: 0;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.flow-grid--5 .flow-step__title { font-size: 16px; letter-spacing: 0.08em; }
.flow-grid--5 .flow-step__num { font-size: 28px; }

/* ===== Q&A ===== */
.pillow-qa {
  background: #fff;
  padding: 100px 0;
}
@media (max-width: 1023px) { .pillow-qa { padding: 60px 0; } }

.qa-block {
  max-width: 1080px;
  margin: 0 auto 56px;
  padding: 48px 60px;
  background: #f9f8f5;
  border-radius: 16px;
}
.qa-block:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .qa-block { padding: 32px 24px; }
}

.qa-block__q {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.06em;
  color: #434243;
  line-height: 1.5;
  margin: 0 0 16px;
}
.qa-block__lead {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.06em;
  line-height: 1.8;
  color: #434243;
  margin: 0 0 16px;
}
.qa-block__text {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 2;
  color: #434243;
  margin: 0 0 24px;
}
.qa-block__image {
  aspect-ratio: 16 / 6;
  background-color: transparent;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
  margin-bottom: 16px;
}
.qa-block__caption {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 1.7;
  color: #8f8d86;
  text-align: center;
  margin: 0;
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .qa-block__q { font-size: 18px; }
  .qa-block__lead { font-size: 14px; }
  .qa-block__text { font-size: 13px; }
}

/* ===== Pillow Points ===== */
.pillow-points {
  background: #f9f8f5;
  padding: 100px 0;
}
@media (max-width: 1023px) { .pillow-points { padding: 60px 0; } }

.points-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 56px;
}
@media (max-width: 1023px) {
  .points-grid { grid-template-columns: 1fr; }
}

.point-card {
  background: #fff;
  border-radius: 16px;
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.point-card__num {
  display: inline-block;
  padding: 4px 16px;
  border: 1px solid #c0bcb4;
  border-radius: 999px;
  font-family: var(--font-zen);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: #8f8d86;
}
.point-card__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 48px;
  letter-spacing: 0.16em;
  color: #434243;
  margin: 0;
  line-height: 1.2;
}
.point-card__sub {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.06em;
  color: #434243;
  margin: 0;
}
.point-card__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-color: transparent;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
}
.point-card__text {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 1.85;
  color: #434243;
  margin: 0;
}
@media (max-width: 767px) {
  .point-card { padding: 32px 24px; }
  .point-card__title { font-size: 32px; }
  .point-card__sub { font-size: 15px; }
}

/* ===== Press Shaper ===== */
.press-shaper {
  background: #fff;
  padding: 100px 0;
}
@media (max-width: 1023px) { .press-shaper { padding: 60px 0; } }

.press-shaper__row {
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 60px;
  align-items: center;
  margin-top: 56px;
}
.press-shaper__image {
  aspect-ratio: 560 / 380;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 12px;
}
.press-shaper__text { display: flex; flex-direction: column; gap: 16px; }
.press-shaper__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 28px;
  letter-spacing: 0.08em;
  line-height: 1.5;
  color: #434243;
  margin: 0;
}
.press-shaper__text p {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 2;
  color: #434243;
  margin: 0;
  letter-spacing: 0.04em;
}
@media (max-width: 1023px) {
  .press-shaper__row { grid-template-columns: 1fr; gap: 32px; }
  .press-shaper__title { font-size: 22px; }
}

/* ===== Testimonials ===== */
.pillow-testimonials {
  background: #f9f8f5;
  padding: 100px 0;
}
@media (max-width: 1023px) { .pillow-testimonials { padding: 60px 0; } }

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
  margin-bottom: 48px;
}
@media (max-width: 1023px) {
  .testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  .testimonial-grid { grid-template-columns: 1fr; }
}

.testimonial-card {
  background: #fff;
  border-radius: 12px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  border: 1px solid #e5e2d8;
}
.testimonial-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}
.testimonial-card__avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: #d8d3c5;
  flex-shrink: 0;
}
.testimonial-card__name {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.04em;
  color: #434243;
  margin: 0;
}
.testimonial-card__attr {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: #8f8d86;
  margin: 4px 0 0;
}
.testimonial-card__text {
  font-family: var(--font-serif);
  font-size: 13px;
  line-height: 1.85;
  color: #434243;
  margin: 0;
}

.pillow-testimonials__cta {
  text-align: center;
}

/* ===== Maintenance ===== */
.pillow-maintenance {
  background: #fff;
  padding: 100px 0;
}
@media (max-width: 1023px) { .pillow-maintenance { padding: 60px 0; } }

.maintenance-block {
  margin-top: 80px;
}
.maintenance-block:first-child { margin-top: 0; }

.maintenance-grid {
  display: grid;
  gap: 24px;
  margin-top: 32px;
}
.maintenance-grid--2 { grid-template-columns: repeat(2, 1fr); }
.maintenance-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1023px) {
  .maintenance-grid--2,
  .maintenance-grid--3 { grid-template-columns: 1fr; }
}

.maintenance-card {
  background: #f9f8f5;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.maintenance-card__image {
  aspect-ratio: 628 / 280;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.maintenance-grid--3 .maintenance-card__image { aspect-ratio: 410 / 280; }
.maintenance-card__body {
  padding: 28px 32px 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.maintenance-card__num {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: #8f8d86;
}
.maintenance-card__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.08em;
  color: #434243;
  margin: 0;
}
.maintenance-card__text {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 1.85;
  color: #434243;
  margin: 8px 0 0;
}
@media (max-width: 767px) {
  .maintenance-card__body { padding: 24px; }
  .maintenance-card__title { font-size: 18px; }
}

/* Support block (10年サポート) */
.support-block {
  margin-top: 80px;
  background: #f9f8f5;
  border-radius: 16px;
  padding: 48px;
  display: grid;
  grid-template-columns: 440px 1fr;
  gap: 60px;
  align-items: center;
}
.support-block__image {
  aspect-ratio: 440 / 280;
  background-color: #d8d3c5;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
}
.support-block__body { display: flex; flex-direction: column; gap: 12px; }
.support-block__eyebrow {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: #8f8d86;
}
.support-block__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 32px;
  letter-spacing: 0.08em;
  color: #434243;
  margin: 0;
  line-height: 1.4;
}
.support-block__text {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 2;
  color: #434243;
  margin: 0;
  letter-spacing: 0.04em;
}
.support-block__notice {
  font-family: var(--font-serif);
  font-size: 13px;
  color: #8f8d86;
  margin: 8px 0 0;
}
@media (max-width: 1023px) {
  .support-block { grid-template-columns: 1fr; gap: 32px; padding: 32px; }
  .support-block__title { font-size: 24px; }
}

/* Section head md variant for maintenance subsections */
.section-head__title--md { font-size: 32px !important; }
@media (max-width: 767px) {
  .section-head__title--md { font-size: 24px !important; }
}

/* ===== Press shaper lead (small dot text above heading) ===== */
.press-shaper__lead {
  font-family: var(--font-serif);
  font-size: 14px;
  letter-spacing: 0.18em;
  color: #8f8d86;
  margin: 0 0 4px;
  text-align: center;
  position: relative;
  display: inline-block;
}
.press-shaper__lead::before,
.press-shaper__lead::after {
  content: "・・";
  margin: 0 8px;
  color: #c0bcb4;
  letter-spacing: 0.2em;
}

/* ===== Bottom CTA banner (Order made / Maintenance) ===== */
.pillow-bottom-cta {
  background-color: #f1ede4;
  padding: 80px 0;
  position: relative;
}
.pillow-bottom-cta--maintenance {
  background-color: #ece7da;
}
.pillow-bottom-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  text-align: center;
}
.pillow-bottom-cta__heading {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.04em;
  color: #434243;
  margin: 0;
  line-height: 1.3;
}
.pillow-bottom-cta__buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}
@media (max-width: 767px) {
  .pillow-bottom-cta { padding: 56px 0; }
  .pillow-bottom-cta__heading { font-size: 22px; }
  .pillow-bottom-cta__buttons { flex-direction: column; width: 100%; max-width: 320px; }
}
