/* Local conversion pass: preserve the winter art direction and reading rhythm. */
.hero-description { margin: 22px auto 0; font-size: 18px; line-height: 1.65; letter-spacing: -.025em; }
.hero-description strong { font-size: 20px; font-weight: 600; }
.hero-free { margin: 12px 0 0; font-size: 15px; font-weight: 500; color: #fff7e8; }
.hero-actions { margin-top: 24px; }
.hero .holiday-join, .ending .holiday-join, .holiday-signup-bar .holiday-join { min-height: 54px; padding: 16px 28px; font-size: 16px; text-align: center; text-decoration: none; }
.hero-motion { position: absolute; z-index: 5; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 14px; color: #fff9ec; background: #142a25b8; border: 1px solid #fff9ec70; border-radius: 24px; font: 500 12px/1.3 'Pretendard', sans-serif; cursor: pointer; }
.hero-motion[hidden] { display: none; }
.hero-motion:focus-visible, .holiday-join:focus-visible { outline: 3px solid #b99254; outline-offset: 4px; }
.coupon-price { margin-top: 28px; display: grid; gap: 8px; }
.coupon-price > span { font-size: 14px; line-height: 1.6; color: #f3e4cd; }
.coupon-price > p { display: flex; align-items: baseline; gap: 14px; margin: 0; }
.coupon-price del { color: #ddc8b2; font-size: 19px; text-decoration-thickness: 1px; }
.coupon-price strong { font-size: 32px; font-weight: 650; color: #fff6da; letter-spacing: -.04em; }
.coupon-price small { font-size: 13px; color: #f3e4cd; }
.story-context { margin: 14px 0 0; font-size: 15px; line-height: 1.8; color: #344d43; word-break: keep-all; }
.story-pair { margin: 12px 0 0; font-size: 12px; line-height: 1.6; color: #677164; }
.representative-note { border-top: 1px solid #bfbdac; margin-top: 30px; padding-top: 26px; }
.representative-note h3 { margin: 0 0 14px; font-size: 22px; line-height: 1.65; font-weight: 500; word-break: keep-all; }
.representative-note p { margin: 0 0 14px; font-size: 15px; line-height: 1.85; }
.representative-note a { font-size: 14px; text-underline-offset: 5px; }
.service-fit { margin: 24px 0 0; display: grid; gap: 12px; font-size: 14px; line-height: 1.6; }
.service-fit > div { display: grid; grid-template-columns: 78px 1fr; gap: 12px; }
.service-fit dt { color: #677164; }
.service-fit dd { margin: 0; word-break: keep-all; }
.care-docs h4 { margin: 0 0 14px; color: #244c3d; font-size: 16px; font-weight: 600; }
.care-docs { padding-top: 22px; }
.step-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; }
.process-steps li > div { flex: 1; min-width: 0; }
.step-heading strong { flex: 1 1 140px; min-width: 0; word-break: keep-all; }
.step-cost { color: #a4232d; font: 600 16px/1.5 'Pretendard', sans-serif; white-space: nowrap; }
.holiday-process { padding: 56px 0; background: #fbf7ee; border-bottom: 1px solid #ded8c9; scroll-margin-top: 80px; }
.holiday-process h2 { margin: 0 0 30px; font: 400 30px/1.5 var(--serif); }
.process-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.process-steps li { display: flex; align-items: baseline; gap: 13px; padding: 20px 0 0; border-top: 1px solid #c8c4b3; }
.process-steps li > span { flex: 0 0 23px; color: #8b7250; font: 24px/1.3 Instrument, serif; }
.process-steps strong { font-size: 16px; font-weight: 600; line-height: 1.6; }
.process-steps p { margin: 10px 0 0; color: #4b5c4e; font-size: 15px; line-height: 1.8; word-break: keep-all; overflow-wrap: anywhere; }
.letter-layout { grid-template-rows: auto; align-items: center; }
.letter-copy { align-self: center; }
.letter-art { grid-row: 1; }
@media (min-width: 681px) and (max-width: 1000px) {
  .process-steps { grid-template-columns: 1fr; gap: 22px; }
  .holiday-process > .wrap { max-width: 700px; }
}
.holiday-faq a { text-underline-offset: 3px; }
.holiday-signup-bar { display: none; }
.analytics-consent { border-color: #b4baac; box-shadow: 0 12px 35px #152b2426; color: #234639; }
.analytics-consent-text, .analytics-consent-text a { color: #465c50; }
.analytics-consent-btn { color: #234639; border-color: #a5b1a3; background: #f6f5ed; }
.analytics-consent-btn.primary { border-color: #244c3d; background: #244c3d; }
@media (max-width: 680px) {
  .hero-description { margin-top: 18px; font-size: 16px; line-height: 1.65; }
  .hero-description strong { font-size: 18px; }
  .hero-free { margin-top: 10px; font-size: 14px; }
  .hero-actions { margin-top: 20px; }
  .hero-actions .holiday-join { min-width: 240px; max-width: 100%; }
  .hero-motion { right: 16px; bottom: 18px; padding: 10px 12px; }
  .hero-motion .motion-label { font-size: 11px; }
  .coupon-price { margin-top: 22px; }
  .coupon-price strong { font-size: 30px; }
  .story-context { font-size: 14px; line-height: 1.75; }
  .representative-note { margin-top: 26px; padding-top: 22px; }
  .representative-note h3 { font-size: 20px; }
  .service-fit { font-size: 13px; }
  .step-heading { gap: 6px 12px; }
  .step-heading strong { font-size: 16px; }
  .step-cost { font-size: 15px; }
  .holiday-process { padding: 40px 0; }
  .holiday-process h2 { margin-bottom: 24px; font-size: 27px; }
  .process-steps { grid-template-columns: 1fr; gap: 20px; }
  .process-steps li { padding-top: 18px; gap: 12px; }
  .process-steps p { margin-top: 8px; }
  .holiday-signup-bar:not([hidden]) { position: fixed; z-index: 80; bottom: 0; left: 0; right: 0; display: block; padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: #f9f7ee; border-top: 1px solid #d9d3c1; }
  .holiday-signup-bar .holiday-join { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; color: #fffaf0; background: #224c3c; border: 1px solid #224c3c; border-radius: 4px; }
  body.modal-open .holiday-signup-bar, body.menu-open .holiday-signup-bar,
  body:has(#analytics-consent:not([hidden])) .holiday-signup-bar { display: none; }
  .site-footer { padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
  .hero-description { font-size: 15px; }
  .step-heading { display: block; }
  .step-cost { display: block; margin-top: 5px; }
}
