/* Phase 12 — /ihin-seiri/ 遺品整理＋買取. Page-scoped (enqueued on page "ihin-seiri" only); Design v3.2 tokens only. */
.nessie-ihin { display: block; overflow-x: clip; }
.nessie-ihin h2 { margin: 0; font-size: 36px; font-weight: 600; line-height: 1.5; text-wrap: balance; word-break: auto-phrase; }
.nessie-ihin h3 { margin: 0; color: var(--nessie-navy); font-family: var(--nessie-font-heading); font-size: 19px; font-weight: 600; line-height: 1.5; }
.nessie-ihin .nessie-eyebrow { margin: 0 0 12px; color: var(--nessie-gold); font-size: 12px; font-weight: 600; letter-spacing: .15em; }
.nessie-ihin img { display: block; max-width: 100%; height: auto; }
.nessie-ihin-nb { display: inline-block; } /* Heading phrase units: lines break between phrases in every browser. */
.nessie-ihin p { line-height: 1.9; }

.nessie-ihin-section { padding-block: 112px; }
.nessie-ihin-section:nth-of-type(even) { background: var(--nessie-off-white); }
.nessie-ihin-head { display: grid; grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); column-gap: 48px; align-items: end; margin-bottom: 40px; }
.nessie-ihin-head__lead { margin: 0 0 6px; color: var(--nessie-muted); font-size: 15px; }

.nessie-ihin-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--nessie-aqua); font-size: 15px; font-weight: 600; text-decoration: none; }
.nessie-ihin-link:hover { text-decoration: underline; }
.nessie-ihin a:focus-visible, .nessie-ihin summary:focus-visible { outline: 2px solid var(--nessie-aqua); outline-offset: 4px; }
.nessie-ihin-more { display: flex; flex-wrap: wrap; gap: 0 32px; margin: 28px 0 0; }
.nessie-ihin-linklist { margin: 20px 0 0; padding: 0; list-style: none; }

.nessie-ihin-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }
.nessie-ihin-actions .nessie-button { min-height: var(--nessie-layout-hero-primary-height-pc); padding-inline: 32px; font-size: var(--nessie-type-hero-primary-pc); }
.nessie-ihin-actions__phone { flex-direction: column; gap: 0; line-height: 1.35; }
.nessie-ihin-actions__phone small { font-size: 13px; font-weight: 400; letter-spacing: .04em; }

/* 01 Hero */
.nessie-ihin-hero { padding-block: 24px 96px; }
.nessie-ihin-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: var(--nessie-layout-hero-gutter); align-items: center; }
.nessie-ihin-hero__eyebrow { margin: 0 0 8px; color: var(--nessie-muted); font-size: 13px; letter-spacing: .08em; }
.nessie-ihin-hero__title { margin: 0 0 20px; color: var(--nessie-gold); font-family: var(--nessie-font-body); font-size: 16px; font-weight: 600; letter-spacing: .12em; line-height: 1.6; }
.nessie-ihin-hero__display { margin: 0; color: var(--nessie-navy); font-family: var(--nessie-font-heading); font-size: 60px; font-weight: 600; line-height: 1.3; }
.nessie-ihin-hero__lead { margin: 28px 0 0; color: var(--nessie-ink); font-size: var(--nessie-type-body-pc-2); }
.nessie-ihin-hero__note { margin: 20px 0 0; color: var(--nessie-muted); font-size: 14px; }
.nessie-ihin-hero__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 60%; }

/* 02 Role */
.nessie-ihin-role__lead { max-width: 760px; margin: 0 0 32px; font-size: 16px; }
.nessie-ihin-role__panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.nessie-ihin-role__panel li { padding: 32px; border: 1px solid var(--nessie-line); background: var(--nessie-white); }
.nessie-ihin-role__panel li.is-ours { border-color: var(--nessie-navy); }
.nessie-ihin-role__panel p { margin: 10px 0 0; color: var(--nessie-muted); font-size: 15px; }

/* 03 Items */
.nessie-ihin-items__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; margin: 0; padding: 0; list-style: none; }
.nessie-ihin-items__card { min-width: 0; }
.nessie-ihin-items__card a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding-bottom: 16px; border-bottom: 1px solid var(--nessie-line); color: var(--nessie-navy); text-decoration: none; }
.nessie-ihin-items__media { display: block; margin-bottom: 10px; aspect-ratio: 4 / 3; overflow: hidden; background: var(--nessie-white); }
.nessie-ihin-items__media img { width: 100%; height: 100%; object-fit: cover; }
.nessie-ihin-items__card.is-illustration .nessie-ihin-items__media img { padding: 12%; object-fit: contain; }
.nessie-ihin-items__eyebrow { color: var(--nessie-gold); font-size: 11px; font-weight: 600; letter-spacing: .12em; }
.nessie-ihin-items__name { font-family: var(--nessie-font-heading); font-size: 19px; font-weight: 600; line-height: 1.45; }
.nessie-ihin-items__link { margin-top: auto; color: var(--nessie-aqua); font-size: 13px; font-weight: 600; }
.nessie-ihin-items__card a:hover .nessie-ihin-items__name { text-decoration: underline; }

/* 04 / 06 Splits */
.nessie-ihin-split__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.nessie-ihin-split--reverse .nessie-ihin-split__media { order: 2; }
.nessie-ihin-split__media img { width: 100%; max-width: 440px; aspect-ratio: 1; object-fit: cover; background: var(--nessie-white); }
.nessie-ihin-split__media--wide img { max-width: none; aspect-ratio: 16 / 9; }
.nessie-ihin-split__copy h2 { margin-bottom: 20px; }
.nessie-ihin-split__copy p:not(.nessie-eyebrow) { margin: 0; font-size: 16px; }

/* 05 Take your time / 08 Limits */
.nessie-ihin-quiet__box, .nessie-ihin-limits__box { max-width: 760px; margin-inline: auto; padding: 48px; border: 1px solid var(--nessie-line); background: var(--nessie-white); }
.nessie-ihin-quiet__box { border-color: transparent; text-align: center; }
.nessie-ihin-quiet__box h2, .nessie-ihin-limits__box h2 { margin-bottom: 20px; font-size: 30px; }
.nessie-ihin-quiet__box p:not(.nessie-eyebrow), .nessie-ihin-limits__box p:not(.nessie-eyebrow) { margin: 0 0 12px; font-size: 15px; }
.nessie-ihin-quiet__confirm { padding-top: 16px; border-top: 1px solid var(--nessie-line); color: var(--nessie-navy); font-weight: 600; }

/* 07 Before disposal */
.nessie-ihin-check__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; margin: 0; padding: 0; list-style: none; }
.nessie-ihin-check__list li { padding-block: 24px; border-top: 1px solid var(--nessie-line); }
.nessie-ihin-check__list p { margin: 8px 0 0; color: var(--nessie-muted); font-size: 14px; }

/* 09 Flow */
.nessie-ihin-flow__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.nessie-ihin-flow__steps .nessie-number { color: var(--nessie-gold); }
.nessie-ihin-flow__steps p { margin: 8px 0 0; color: var(--nessie-muted); font-size: 14px; }

/* 10 Assurance */
.nessie-ihin-assurance__list { max-width: 880px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--nessie-line); }
.nessie-ihin-assurance__list li { padding: 18px 0 18px 22px; border-bottom: 1px solid var(--nessie-line); font-size: 15px; line-height: 1.8; position: relative; }
.nessie-ihin-assurance__list li::before { position: absolute; top: 1.55em; left: 0; width: 10px; height: 1px; background: var(--nessie-gold); content: ''; }

/* 11 FAQ */
.nessie-ihin-faq__list { max-width: 880px; border-top: 1px solid var(--nessie-line); }
.nessie-ihin-faq__item { border-bottom: 1px solid var(--nessie-line); }
.nessie-ihin-faq__item summary { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 16px 40px 16px 0; color: var(--nessie-navy); font-size: 16px; font-weight: 600; line-height: 1.6; cursor: pointer; list-style: none; position: relative; }
.nessie-ihin-faq__item summary::-webkit-details-marker { display: none; }
.nessie-ihin-faq__item summary::after { position: absolute; right: 8px; color: var(--nessie-aqua); font-size: 20px; font-weight: 400; content: '+'; }
.nessie-ihin-faq__item[open] summary::after { content: '−'; }
.nessie-ihin-faq__q { color: var(--nessie-gold); font-family: var(--nessie-font-heading); font-size: 20px; }
.nessie-ihin-faq__answer { padding: 0 40px 20px 36px; }
.nessie-ihin-faq__answer p { margin: 0 0 4px; font-size: 15px; }

/* 12 Page-specific final CTA */
.nessie-ihin-final { padding-block: 96px; background: var(--nessie-navy); color: var(--nessie-white); }
.nessie-ihin-final__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: center; }
.nessie-ihin-final h2 { color: var(--nessie-white); font-size: 34px; }
.nessie-ihin-final p:not(.nessie-eyebrow) { margin: 16px 0 0; color: var(--nessie-light-gray); font-size: 15px; }
.nessie-ihin-final .nessie-ihin-actions { margin-top: 0; }
.nessie-ihin-final .nessie-button--secondary { border-color: var(--nessie-white); background: transparent; }

@media (prefers-reduced-motion: reduce) { .nessie-ihin * { scroll-behavior: auto; transition: none; } }

@media (width <= 1199px) {
  .nessie-ihin-section { padding-block: 96px; }
  .nessie-ihin-hero__inner { gap: 40px; }
  .nessie-ihin-hero__display { font-size: 52px; }
  .nessie-ihin-flow__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nessie-ihin-final__inner { grid-template-columns: 1fr; gap: 28px; }
}

@media (width <= 1023px) {
  .nessie-ihin-hero__inner { grid-template-columns: 1fr; }
  .nessie-ihin-hero__media img { aspect-ratio: 4 / 3; object-position: 50% 68%; }
  .nessie-ihin-head { grid-template-columns: 1fr; row-gap: 12px; }
  .nessie-ihin-split__inner { grid-template-columns: 1fr; gap: 32px; }
  .nessie-ihin-split--reverse .nessie-ihin-split__media { order: 0; }
  .nessie-ihin-items__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (width <= 767px) {
  .nessie-ihin h2 { font-size: 26px; }
  .nessie-ihin h3 { font-size: 17px; }
  .nessie-ihin .nessie-eyebrow { font-size: 11px; }
  .nessie-ihin-section { padding-block: 72px; }
  .nessie-ihin-head { margin-bottom: 24px; }
  .nessie-ihin-hero { padding-block: 4px 56px; }
  .nessie-ihin-hero__inner { gap: 28px; }
  .nessie-ihin-hero__eyebrow { margin-bottom: 4px; font-size: 12px; }
  .nessie-ihin-hero__title { margin-bottom: 10px; font-size: 13px; }
  .nessie-ihin-hero__display { font-size: 36px; line-height: 1.3; }
  .nessie-ihin-hero__lead { margin-top: 14px; font-size: 15px; line-height: 1.8; }
  .nessie-ihin-hero__note { font-size: 13px; }
  .nessie-ihin-actions { flex-direction: column; gap: 10px; margin-top: 20px; }
  .nessie-ihin-actions .nessie-button { width: 100%; min-height: var(--nessie-layout-hero-primary-height-sp); font-size: var(--nessie-type-hero-primary-sp); }
  /* Mid-page on SP: the shared fixed CTA carries the buttons, so section actions become a text link. */
  .nessie-ihin-section .nessie-ihin-actions__phone { display: none; }
  .nessie-ihin-section .nessie-ihin-actions .nessie-button--primary { justify-content: flex-start; width: auto; min-height: 44px; padding: 0; background: none; color: var(--nessie-action-red); font-size: 15px; }
  .nessie-ihin-role__panel { grid-template-columns: 1fr; gap: 12px; }
  .nessie-ihin-role__panel li { padding: 22px 20px; }
  .nessie-ihin-items__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .nessie-ihin-items__name { font-size: 16px; }
  .nessie-ihin-items__link { font-size: 12px; }
  .nessie-ihin-more { flex-direction: column; gap: 0; }
  .nessie-ihin-split__media img { max-width: none; aspect-ratio: 4 / 3; }
  .nessie-ihin-quiet__box, .nessie-ihin-limits__box { padding: 28px 20px; }
  .nessie-ihin-quiet__box h2, .nessie-ihin-limits__box h2 { font-size: 23px; }
  .nessie-ihin-check__list { grid-template-columns: 1fr; }
  .nessie-ihin-flow__steps { grid-template-columns: 1fr; gap: 0; }
  .nessie-ihin-faq__item summary { gap: 12px; font-size: 15px; }
  .nessie-ihin-faq__answer { padding: 0 8px 18px 30px; }
  .nessie-ihin-final { padding-block: 64px; }
  .nessie-ihin-final h2 { font-size: 24px; }
}
