/* ==========================================================================
   Progressive Builders — policy.css
   Shared by ALL 7 legal / policy pages (pb key "policy"):
     Privacy Policy, Cookies Policy, California Privacy Act, Terms of Use,
     Accessibility Policy, Disclaimer, Opt-Out Preferences.
   Page hero + buttons come from component.css.

   Section-background rhythm:  hero (navy) → legal body (ivory)
   ========================================================================== */

/* 02 — CONTENT (single centered column)
   Long-form legal text — kept on a flat, light surface rather than the
   photo+overlay backdrop every other section gets, so it stays readable. */
.pb-legal {
  background: var(--pb-ivory);
  background-image: none;
  color: var(--pb-slate);
}
.pb-legal__content {
  max-width: 820px;
  margin: 0 auto;
}
.pb-legal__lead {
  font-size: 1.05rem;
  color: var(--pb-slate);
  line-height: 1.8;
  margin-bottom: 28px;
}
.pb-legal__content h2 {
  font-size: 1.4rem;
  color: var(--pb-head);
  margin: 36px 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--pb-border);
}
.pb-legal__content h3 {
  font-size: 1.08rem;
  color: var(--pb-head);
  margin: 22px 0 8px;
}
.pb-legal__content p {
  color: var(--pb-ash);
  line-height: 1.8;
  margin-bottom: 16px;
}
.pb-legal__content a {
  color: var(--pb-amber-dark);
  text-decoration: underline;
  transition: color 0.2s ease !important;
}
.pb-legal__content a:hover {
  color: var(--pb-navy);
}
.pb-legal__content ul {
  margin: 0 0 18px;
  padding-left: 22px;
  color: var(--pb-ash);
  line-height: 1.8;
}
.pb-legal__content ul li {
  margin-bottom: 8px;
}

/* Placeholder / action callout (e.g. cookie-settings link slot) */
.pb-legal__note {
  margin: 0 0 18px;
  padding: 14px 18px;
  background: #fff8ec;
  border: 1px dashed var(--pb-amber);
  border-radius: var(--pb-radius-sm);
  font-size: 0.9rem;
  color: var(--pb-slate);
}

/* --- Cookies table ----------------------------------------------------- */
.pb-legal__table-wrap {
  overflow-x: auto;
  margin: 0 0 20px;
}
.pb-legal table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}
.pb-legal th,
.pb-legal td {
  text-align: left;
  padding: 12px 14px;
  border: 1px solid var(--pb-border);
  vertical-align: top;
}
.pb-legal th {
  background: var(--pb-navy);
  color: #fff;
  font-family: var(--pb-font-display);
  font-weight: 600;
  white-space: nowrap;
}
.pb-legal tbody tr:nth-child(even) {
  background: var(--pb-ivory);
}

/* --- Contact block ----------------------------------------------------- */
.pb-legal__contact {
  margin-top: 40px;
  padding: 24px;
  background: var(--pb-tint);
  border-radius: var(--pb-radius);
  border-left: 3px solid var(--pb-amber);
  font-family: var(--pb-font-mono);
  font-size: 0.9rem;
  line-height: 1.9;
  color: var(--pb-slate);
}
.pb-legal__contact p {
  margin: 0;
}
.pb-legal__contact-name {
  font-weight: 700;
  color: var(--pb-navy);
}
.pb-legal__contact a {
  color: var(--pb-amber-dark);
}
.pb-legal__contact a:hover {
  color: var(--pb-navy);
}

/* --- Complianz data-request form ([cmplz-data-request]) ----------------
   Wrapper card + restyle of the plugin-generated .complianz-form markup so
   it matches the site. The plugin outputs fixed class/id names, so we target
   those directly here. */
.pb-datarequest {
  margin: 8px 0 24px;
  padding: clamp(22px, 4vw, 34px);
  background: var(--pb-white);
  border: 1px solid var(--pb-border);
  border-left: 3px solid var(--pb-amber);
  border-radius: var(--pb-radius);
  box-shadow: var(--pb-shadow-sm);
}
.pb-datarequest .complianz-form {
  max-width: 560px;
}

/* Honeypot spam-trap field Complianz injects (labeled "Name"): keep it hidden
   from real visitors. */
.pb-datarequest .cmplz-first-name {
  display: none !important;
}

/* Status message / alert — HIDDEN by default. Complianz's JS reveals it inline
   (display:block) when there is a message to show; .cmplz-close hides it again. */
.pb-datarequest .cmplz-datarequest.cmplz-alert {
  display: none;
  position: relative;
  margin-bottom: 22px;
  padding: 14px 40px 14px 16px;
  background: var(--pb-tint);
  border: 1px solid var(--pb-border);
  border-left: 3px solid var(--pb-amber);
  border-radius: var(--pb-radius-sm);
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--pb-slate);
}
.pb-datarequest .cmplz-close {
  position: absolute;
  top: 8px;
  right: 12px;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  color: var(--pb-ash);
  transition: color 0.2s ease !important;
}
.pb-datarequest .cmplz-close:hover {
  color: var(--pb-amber-dark);
}

/* Form fields */
.pb-datarequest #cmplz-datarequest-form > div,
.pb-datarequest #cmplz-datarequest-form > label {
  display: block;
  margin-bottom: 16px;
}
.pb-datarequest #cmplz-datarequest-form label {
  font-family: var(--pb-font-display);
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--pb-head);
}
.pb-datarequest #cmplz-datarequest-form > div:not(.cmplz_datarequest) > label {
  display: block;
  margin-bottom: 6px;
}
.pb-datarequest #cmplz-datarequest-form input[type="text"],
.pb-datarequest #cmplz-datarequest-form input[type="email"],
.pb-datarequest #cmplz-datarequest-form input[type="search"] {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px 14px;
  font-family: var(--pb-font-body);
  font-size: 0.95rem;
  color: var(--pb-slate);
  background: var(--pb-white);
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius-sm);
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.pb-datarequest #cmplz-datarequest-form input[type="text"]:focus,
.pb-datarequest #cmplz-datarequest-form input[type="email"]:focus,
.pb-datarequest #cmplz-datarequest-form input[type="search"]:focus {
  outline: none;
  border-color: var(--pb-amber);
  box-shadow: 0 0 0 3px rgba(192, 25, 43, 0.12);
}

/* Checkbox request rows */
.pb-datarequest .cmplz_datarequest {
  margin-bottom: 12px;
}
.pb-datarequest #cmplz-datarequest-form .cmplz_datarequest label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--pb-font-body);
  font-weight: 400;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--pb-ash);
  cursor: pointer;
}
.pb-datarequest .cmplz_datarequest input[type="checkbox"] {
  margin-top: 3px;
  width: 16px;
  height: 16px;
  accent-color: var(--pb-amber);
  flex: 0 0 auto;
}

/* Send button — styled like the site's primary button */
.pb-datarequest #cmplz-datarequest-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
  padding: 13px 30px;
  font-family: var(--pb-font-display);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #fff;
  background: var(--pb-amber);
  border: 2px solid transparent;
  border-radius: var(--pb-radius-sm);
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;
}
.pb-datarequest #cmplz-datarequest-submit:hover,
.pb-datarequest #cmplz-datarequest-submit:focus {
  background: var(--pb-amber-dark);
  transform: translateY(-2px);
  box-shadow: var(--pb-shadow-md);
}

