/* 법률사무소 연간 패키지. 기존 홈페이지 구독·결제 스타일과 분리한다. */
body#top .legal-section { padding: 64px 24px; color: #20221f; background: #f7f6f2; }
body#top .legal-wrap { width: 100%; max-width: 1296px; margin: 0 auto; }
body#top .legal-intro { max-width: 780px; }
body#top .legal-eyebrow { margin: 0 0 14px; color: #456e25; font-size: 14px; font-weight: 700; }
body#top .legal-section h2 { margin: 0; font-size: clamp(30px, 3vw, 44px); line-height: 1.3; letter-spacing: -.03em; }
body#top .legal-description { margin: 20px 0 0; color: #686b65; font-size: 17px; line-height: 1.8; }
body#top .legal-contract { margin: 28px 0; padding: 20px 24px; background: #eef5e7; border-radius: 8px; line-height: 1.75; }
body#top .legal-contract strong { color: #20221f; }
body#top .legal-downloads { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 28px; }
body#top .legal-downloads span { margin-left: 10px; color: #686b65; font-size: 12px; font-weight: 500; }
body#top .legal-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 20px; margin-top: 36px; }
body#top .legal-plan { display: flex; flex-direction: column; min-width: 0; padding: 30px; border-radius: 12px; background: #fff; }
body#top .legal-plan.legal-plan-recommended { background: #eef5e7; }
body#top .legal-plan-label { min-height: 26px; margin: 0 0 16px; color: #686b65; font-size: 13px; font-weight: 700; }
body#top .legal-plan-label span { display: inline-block; padding: 4px 9px; border-radius: 4px; background: #eef5e7; color: #456e25; }
body#top .legal-plan-recommended .legal-plan-label span { background: #456e25; color: #fff; }
body#top .legal-plan h3 { margin: 0; color: #20221f; font-size: 26px; line-height: 1.3; }
body#top .legal-price { margin: 20px 0 4px; color: #1d6398; font-size: 39px; font-weight: 750; line-height: 1.25; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
body#top .legal-price span { font-size: 17px; font-weight: 600; letter-spacing: 0; white-space: nowrap; }
body#top .legal-tax { margin: 0; color: #686b65; font-size: 13px; line-height: 1.65; }
body#top .legal-plan-description { min-height: 54px; margin: 20px 0; color: #686b65; font-size: 15px; line-height: 1.8; }
body#top .legal-feature-list { flex: 1; display: grid; align-content: start; gap: 13px; margin: 0 0 28px; padding: 0; list-style: none; color: #20221f; font-size: 15px; line-height: 1.65; }
body#top .legal-feature-list li { padding-left: 18px; position: relative; }
body#top .legal-feature-list li::before { position: absolute; left: 0; content: "·"; color: #456e25; font-weight: 800; }
body#top .legal-feature-list small { display: block; color: #686b65; font-size: 13px; }
body#top .legal-button { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 13px 20px; border: 1px solid #c9cbc3; border-radius: 6px; color: #20221f; background: #fff; font-size: 15px; font-weight: 700; text-decoration: none; }
body#top .legal-button:hover { border-color: #456e25; color: #456e25; }
body#top .legal-button-primary { background: #456e25; color: #fff; border-color: #456e25; }
body#top .legal-button-primary:hover { background: #39591f; color: #fff; }
body#top .legal-button:disabled { cursor: wait; opacity: .55; }
body#top .legal-payment-preview { margin: 12px 0 8px; color: #686b65; font-size: 13px; line-height: 1.7; }
body#top .legal-consult-link { display: inline-flex; align-items: center; min-height: 44px; align-self: flex-start; color: #1d6398; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
body#top .marketing-checkout { margin-top: 20px; color: #20221f; font-size: 14px; line-height: 1.75; }
body#top .marketing-contract-total { margin: 0 0 16px; font-weight: 650; }
body#top .marketing-payment-options { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
body#top .marketing-payment-options legend { margin-bottom: 10px; font-weight: 700; }
body#top .marketing-payment-options label { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid #c9cbc3; border-radius: 8px; cursor: pointer; }
body#top .marketing-payment-options label:has(input:checked) { background: #eef5e7; border-color: #456e25; }
body#top .marketing-payment-options input, body#top .marketing-scope-agreement input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; accent-color: #456e25; }
body#top .marketing-payment-options strong, body#top .marketing-payment-options span span { display: block; }
body#top .marketing-payment-options span span { color: #1d6398; font-weight: 650; }
body#top .marketing-payment-remaining { margin: 16px 0; color: #686b65; }
body#top .marketing-scope-agreement { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 13px; }
body#top .legal-button:focus-visible, body#top .legal-teaser a:focus-visible { outline: 3px solid #456e25; outline-offset: 4px; }
body#top .legal-common { margin: 24px 0 0; padding: 24px; border-radius: 8px; background: #eef5e7; color: #686b65; font-size: 14px; line-height: 1.85; }
body#top .legal-common strong { color: #20221f; }
body#top .legal-details { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 64px; }
body#top .legal-details h3, body#top .legal-consult h3 { margin: 0 0 20px; font-size: 25px; letter-spacing: -.02em; }
body#top .legal-steps { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; counter-reset: legal-step; }
body#top .legal-steps li { counter-increment: legal-step; display: grid; grid-template-columns: 30px 1fr; gap: 12px; border-top: 1px solid #dddfd7; padding-top: 16px; color: #686b65; font-size: 14px; line-height: 1.8; }
body#top .legal-steps li::before { content: "0" counter(legal-step); color: #456e25; font-weight: 700; }
body#top .legal-steps strong { display: block; color: #20221f; font-size: 16px; }
body#top .legal-faq details { border-top: 1px solid #dddfd7; padding: 16px 0; }
body#top .legal-faq summary { cursor: pointer; font-size: 15px; font-weight: 650; line-height: 1.65; }
body#top .legal-faq details p { margin: 12px 0 0; color: #686b65; font-size: 14px; line-height: 1.85; }
body#top .legal-consult { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-top: 56px; padding: 40px; border-radius: 12px; background: #fff; }
body#top .legal-consult h3 { margin-bottom: 12px; }
body#top .legal-consult p { margin: 0; color: #686b65; font-size: 15px; line-height: 1.8; }
body#top .legal-consult .legal-button { flex-shrink: 0; }
body#top .legal-teaser { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin: 0 auto; padding: 36px 40px; border-radius: 12px; background: #fff; }
body#top .legal-teaser h2 { font-size: 27px; }
body#top .legal-teaser p { max-width: 760px; margin: 12px 0 0; color: #686b65; font-size: 15px; line-height: 1.8; }
body#top .legal-teaser .legal-button { flex-shrink: 0; }
@media (max-width: 1023px) {
  body#top .legal-plans { grid-template-columns: 1fr; }
  body#top .legal-plan { padding: 26px; }
  body#top .legal-plan-description { min-height: 0; }
  body#top .legal-details { grid-template-columns: 1fr; gap: 40px; }
  body#top .legal-consult, body#top .legal-teaser { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 639px) {
  body#top .legal-section { padding: 44px 16px; }
  body#top .legal-section h2 { font-size: 29px; }
  body#top .legal-description { font-size: 16px; }
  body#top .legal-contract, body#top .legal-common { padding: 20px; font-size: 14px; }
  body#top .legal-plan { padding: 24px 22px; }
  body#top .legal-price { font-size: 37px; }
  body#top .legal-details { margin-top: 44px; }
  body#top .legal-consult, body#top .legal-teaser { padding: 26px 22px; gap: 22px; }
  body#top .legal-teaser h2 { font-size: 25px; }
  body#top .legal-consult .legal-button, body#top .legal-teaser .legal-button { width: 100%; }
}

/* Keep the annual offer short; full delivery conditions remain available together. */
body#top .legal-intro { max-width: 850px; }
body#top .legal-intro .legal-description { max-width: 720px; }
body#top .legal-contract { margin-bottom: 24px; }
body#top .legal-plan-label { margin-bottom: 12px; }
body#top .legal-feature-list { gap: 10px; margin-top: 24px; margin-bottom: 24px; }
body#top .legal-important { margin: 24px 0; color: #4b5563; font-size: 14px; line-height: 1.9; }
body#top .legal-full-scope, body#top .legal-resources { margin-top: 20px; padding: 0 24px; border-radius: 8px; background: #f6f7f8; }
body#top .legal-full-scope > summary, body#top .legal-resources > summary { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-size: 16px; font-weight: 650; list-style: none; }
body#top .legal-full-scope > summary::after, body#top .legal-resources > summary::after { content: "+"; font-size: 22px; font-weight: 400; }
body#top .legal-full-scope[open] > summary::after, body#top .legal-resources[open] > summary::after { content: "−"; }
body#top .legal-full-scope[open], body#top .legal-resources[open] { padding-bottom: 24px; }
body#top .legal-full-scope .legal-details { margin-top: 32px; }
body#top .legal-scope-table-wrap { overflow-x: auto; }
body#top .legal-scope-table { width: 100%; min-width: 640px; border-collapse: collapse; text-align: left; font-size: 14px; line-height: 1.75; }
body#top .legal-scope-table caption { padding: 12px 0 20px; text-align: left; color: #4b5563; }
body#top .legal-scope-table th, body#top .legal-scope-table td { padding: 14px 16px; border-bottom: 1px solid #dbe0e4; vertical-align: top; }
body#top .legal-scope-table thead th { background: #fff; }
body#top .legal-scope-table tbody th { white-space: nowrap; font-weight: 650; }
body#top .legal-full-scope .legal-common { background: transparent; padding-left: 0; padding-right: 0; }
body#top .legal-resources .legal-downloads { margin: 12px 0 0; }
body#top #contact .contact-options > a, body#top #contact .contact-phone { min-height: 0; padding: 24px; }
body#top #contact .contact-options > a > span:first-child, body#top #contact .contact-phone > span:first-child { display: none; }
body#top #contact .contact-options > a > p:first-of-type, body#top #contact .contact-phone > ul { margin-top: 0; }
body#top #contact .contact-options { margin-top: 32px; }
body#top #contact .contact-options a > p:last-child { margin-bottom: 0; }
@media (max-width: 639px) {
  body#top .legal-full-scope, body#top .legal-resources { padding-left: 18px; padding-right: 18px; }
  body#top #contact .contact-options > a, body#top #contact .contact-phone { padding: 20px 22px; }
}
