@import url("pans-home.css");

.pans-legal-page {
  --legal-section-space: clamp(32px, 4vw, 56px);
  --legal-column-gap: clamp(48px, 7vw, 112px);
  --legal-header-offset: 128px;
}
.pans-legal-page.has-dev-login { --legal-header-offset: 168px; }
.pans-legal-page ::selection { background: var(--pans-orange); color: var(--pans-paper); }
.pans-legal { scroll-margin-top: var(--legal-header-offset); padding-block: clamp(140px, 13vw, 192px) clamp(64px, 8vw, 112px); }
.pans-legal__heading { padding-bottom: clamp(40px, 5vw, 72px); border-bottom: 1px solid var(--pans-line); }
.pans-legal__heading h1 { margin: 0 0 24px; color: var(--pans-ink); font: 400 clamp(40px, 6.3vw, 88px)/1.08 var(--pans-serif); letter-spacing: -.035em; overflow-wrap: anywhere; hyphens: auto; text-wrap: balance; }
.pans-legal__intro { max-width: 640px; margin: 0; color: var(--pans-muted); font-size: clamp(17px, 1.5vw, 21px); line-height: 1.65; }
.pans-legal__layout { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(0, 780px); gap: var(--legal-column-gap); padding-top: var(--legal-section-space); max-width: 1280px; }
.pans-legal__aside { min-width: 0; }
.pans-legal__contents { position: sticky; top: var(--legal-header-offset); }
.pans-legal__contents > p { margin: 0 0 20px; font-size: 14px; font-weight: 700; color: var(--pans-muted); }
.pans-legal__contents ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.pans-legal__contents a { display: block; padding: 12px 0; max-width: 28ch; font-size: 15px; line-height: 1.4; text-decoration: none; text-underline-offset: 5px; }
.pans-legal__contents a:hover { color: var(--pans-orange); text-decoration: underline; }
.pans-legal__body { min-width: 0; font-size: 17px; line-height: 1.8; overflow-wrap: anywhere; }
.pans-legal__section { scroll-margin-top: var(--legal-header-offset); padding-block: var(--legal-section-space); border-top: 1px solid var(--pans-line); }
.pans-legal__section:first-child { padding-top: 0; border-top: 0; }
.pans-legal__section:last-child { padding-bottom: 0; }
.pans-legal__section h2 { margin: 0 0 24px; max-width: 30ch; color: var(--pans-ink); font: 400 clamp(28px, 3vw, 40px)/1.15 var(--pans-serif); letter-spacing: -.025em; text-wrap: balance; }
.pans-legal__section p { max-width: 72ch; margin: 0 0 20px; }
.pans-legal__section p:last-child { margin-bottom: 0; }
.pans-legal__section a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.pans-legal__section a:hover { color: var(--pans-orange); }
.pans-legal-page a:focus-visible, .pans-legal-page button:focus-visible { outline: 2px solid var(--pans-orange); outline-offset: 5px; }

.pans-contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 6vw, 96px); margin-top: clamp(64px, 8vw, 112px); padding: clamp(32px, 5vw, 72px); color: var(--pans-light); background: var(--pans-ink); scroll-margin-top: var(--legal-header-offset); }
.pans-contact__intro h2 { margin: 0 0 24px; color: var(--pans-light); font: 400 clamp(44px, 5vw, 72px)/1.05 var(--pans-serif); letter-spacing: -.03em; }
.pans-contact__intro p { max-width: 35ch; margin: 0 0 32px; font-size: 17px; line-height: 1.7; }
.pans-contact__intro a { text-underline-offset: 5px; }
.pans-contact__intro .pans-contact__phone { margin-top: 48px; font-size: 15px; }
.pans-contact__phone a { display: inline-block; margin-top: 12px; font-size: 22px; }
.pans-contact__form { min-width: 0; }
.pans-contact__required, .pans-contact__privacy { margin: 0; color: var(--pans-light); font-size: 13px; line-height: 1.7; }
.pans-contact__required { margin-bottom: 24px; }
.pans-contact__privacy { margin-top: 24px; }
.pans-contact__privacy a { text-underline-offset: 4px; }
.pans-contact .contact-form-section { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.pans-contact .contact-form-section > h2 { display: none; }
.pans-contact .nibbly-form-grid { gap: 24px; }
.pans-contact .form-group { margin: 0; min-width: 0; }
.pans-contact .form-group label { display: block; margin-bottom: 8px; color: var(--pans-light); font-size: 14px; font-weight: 500; }
.pans-contact .form-group input, .pans-contact .form-group textarea {
  width: 100%; padding: 14px 16px; border: 1px solid var(--pans-paper); border-radius: 0; background: var(--pans-paper); color: var(--pans-ink); font: 400 16px/1.5 var(--pans-sans); caret-color: var(--pans-orange); box-shadow: none;
}
.pans-contact .form-group textarea { min-height: 160px; resize: vertical; }
.pans-contact .form-group input:focus, .pans-contact .form-group textarea:focus { border-color: var(--pans-orange); outline: 2px solid var(--pans-orange); outline-offset: 3px; box-shadow: none; }
.pans-contact .form-actions { margin-top: 32px; text-align: left; justify-content: flex-start; }
.pans-contact button[type="submit"] { min-height: 52px; padding: 14px 28px; border: 0; border-radius: 0; background: var(--pans-orange); color: var(--pans-paper); font: 600 15px/1.5 var(--pans-sans); box-shadow: none; transform: none; transition: background .2s ease; }
.pans-contact button[type="submit"]::before, .pans-contact button[type="submit"]::after { content: none; }
.pans-contact button[type="submit"]:hover { background: #bd4626; transform: none; box-shadow: none; }
.pans-contact button[type="submit"]:disabled { opacity: .65; cursor: wait; }
.pans-contact .form-feedback { color: var(--pans-light); border-radius: 0; line-height: 1.6; }
.pans-contact .form-feedback.success { background: #253b36; color: #eff9f2; border: 1px solid #78978a; }
.pans-contact .form-feedback.error { background: #442a29; color: #fff2eb; border: 1px solid #d69b84; }

@media (max-width: 960px) {
  .pans-legal__layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .pans-legal__contents { position: static; padding-bottom: 32px; border-bottom: 1px solid var(--pans-line); }
  .pans-legal__contents ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .pans-legal__contents a { max-width: none; }
  .pans-legal__body { max-width: 780px; }
  .pans-contact { grid-template-columns: minmax(0, 1fr); }
  .pans-contact__intro p { max-width: 54ch; }
  .pans-contact__intro .pans-contact__phone { margin-top: 24px; margin-bottom: 24px; }
}
@media (max-width: 600px) {
  .pans-legal { padding-top: 128px; }
  .pans-legal__body { font-size: 16px; }
  .pans-legal__contents ul { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .pans-legal__contents a { padding-block: 12px; }
  .pans-legal__section h2 { margin-bottom: 20px; }
  .pans-contact { margin-inline: -12px; padding: 28px 24px; }
  .pans-contact .nibbly-form-grid { grid-template-columns: minmax(0, 1fr); }
  .pans-contact .form-group { grid-column: 1 / -1; }
  .pans-contact button[type="submit"] { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .pans-contact button[type="submit"] { transition: none; } }
