/* Shared page seams and the existing inquiry/footer; section designs stay local. */
/* All homepage outer containers share these widths; inner reading limits stay local. */
#home {
  --home-content-width: min(var(--zto-web-layout-home-content-max), calc(100% - 96px));
  --home-cover-width: min(var(--zto-web-layout-home-cover-max), calc(100% - 96px));
}
@media (width < 900px) {
  #home {
    --home-content-width: min(720px, calc(100% - 40px));
    --home-cover-width: var(--home-content-width);
  }
}
body { padding-bottom: 0; }
#hero, #results, #contact { scroll-margin-top: 24px; }
.contact-section, .site-footer { --muted: #52677a; --line: #dbe7ef; }
.contact-section .container, .site-footer .container { width: var(--home-content-width); margin-inline: auto; }
.contact-section { background: var(--zto-web-surface-answer); color: var(--zto-text-primary); padding-block: 80px 40px; }
.contact-section h2, .contact-section p, .site-footer p { margin: 0; }
.contact-section h2 { font-family: var(--zto-font-body); font-size: 44px; font-weight: 700; line-height: 1.35; letter-spacing: -.04em; word-break: keep-all; overflow-wrap: anywhere; }
.contact-section p { font-size: 16px; line-height: 1.75; color: var(--zto-text-secondary); word-break: keep-all; }
.contact-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); align-items: center; gap: 44px 72px; }
.contact-message p { margin-top: 20px; }
.contact-actions { display: grid; justify-items: stretch; gap: 12px; }
.contact-section .contact-button { margin: 0; min-height: var(--zto-web-action-height-wide); background: var(--zto-web-action-primary-background); color: var(--zto-web-action-primary-foreground); border-radius: var(--zto-web-action-radius); font-size: 16px; }
.contact-section .contact-button:hover { background: var(--zto-web-action-primary-hover); }
.contact-section .contact-button:active { background: var(--zto-web-action-primary-pressed); }
.contact-kakao { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 44px; color: var(--zto-text-action); font-size: 16px; font-weight: 550; }
.contact-kakao span { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.contact-kakao:hover { color: var(--zto-text-primary); }
.contact-kakao svg { flex: none; }
.contact-details { grid-column: 1 / -1; border-top: 1px solid var(--zto-web-border-content); padding-top: 24px; display: flex; align-items: start; flex-wrap: wrap; gap: 12px 48px; }
.contact-direct { display: flex; align-items: center; flex-wrap: wrap; gap: 0 14px; }
.contact-label { font-size: 13px; color: var(--zto-text-secondary); }
.contact-section .email, .contact-section .phone { font-family: var(--zto-font-latin); display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; overflow-wrap: anywhere; font-size: 16px; font-weight: 600; letter-spacing: -.02em; }
.contact-section .email:hover, .contact-section .phone:hover { text-decoration: underline; text-underline-offset: 4px; }
.copy-button { min-height: 44px; padding: 8px 2px; border: 0; background: transparent; color: var(--zto-text-action); font: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.copy-button:hover { color: var(--zto-text-primary); }
.copy-button:disabled { opacity: .6; cursor: wait; }
.contact-section .copy-status { font-size: 13px; line-height: 1.65; }
.contact-section .copy-status:not(:empty) { margin-top: 4px; }
.contact-section :is(a, button):focus-visible { outline: var(--zto-web-focus-width) solid var(--zto-web-focus-color); outline-offset: var(--zto-web-focus-offset); }
/* Main only: the footer's existing clearance becomes a home for these controls.
   Without JS they remain here; other pages keep their current fixed behavior. */
#home .site-footer { position: relative; }
#home .site-footer .quick-contact { position: absolute; }
#home .site-footer .quick-contact[data-footer-docked="false"] { position: fixed; }
.site-footer { padding-block: 48px 24px; }
.footer-top { display: flex; gap: 32px; align-items: center; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.footer-brand img { display: block; width: 128px; height: auto; }
.footer-top > p { font-size: 14px; line-height: 1.75; }
.footer-top > a:last-child { margin-left: auto; font-size: 13px; padding-block: 14px; white-space: nowrap; }
.footer-bottom { display: flex; justify-content: space-between; gap: 32px; padding-top: 24px; font-size: 12px; line-height: 1.75; color: var(--muted); }
.footer-bottom > div { display: flex; gap: 6px 16px; flex-wrap: wrap; }
.footer-bottom > p { white-space: nowrap; }
.review-tools { position: static; padding-block: 12px; }
.review-inner { gap: 12px 28px; }
.review-inner nav { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.review-inner nav a, .review-inner summary { display: inline-flex; min-height: 44px; align-items: center; cursor: pointer; }
.review-inner nav a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.review-inner details { margin-left: auto; }
.review-inner details[open] { flex-basis: 100%; margin-left: 0; }
.review-inner details[open] summary { display: list-item; align-content: center; }
.review-inner .motion-controls button, #results-replay { min-height: 44px; }
#results-replay { margin-top: 8px; border: 1px solid #cedfea; border-radius: 7px; background: white; padding: 8px 12px; cursor: pointer; color: var(--ink); }
@media (width < 1024px) {
  .contact-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .contact-actions { max-width: 360px; width: 100%; }
}
@media (width < 900px) {
  .contact-section { padding-block: 56px 28px; }
  .contact-section h2 { font-size: 32px; }
  .contact-details { padding-top: 20px; gap: 4px 32px; }
  .contact-section .contact-button { min-height: var(--zto-web-action-height-compact); }
  .footer-top { flex-wrap: wrap; gap: 20px; }
  .footer-top > p { flex-basis: calc(100% - 70px); order: 2; }
  .footer-top > a:last-child { order: 3; }
  .footer-bottom { flex-direction: column; gap: 16px; }
  .review-inner { gap: 4px 20px; }
  .review-inner > strong { flex-basis: 100%; }
  .review-inner details { margin-left: 0; }
}
@media (width < 390px) {
  .contact-direct { gap: 0 10px; }
  .contact-email-group .contact-label { flex-basis: 100%; }
}
