/* ==========================================================================
   Page content: the page measure, core blocks placed straight on a page, the
   location picker, Terms clauses, forms, the main office and job listings.
   ========================================================================== */

.ca-page-content > .wp-block-group,
.is-root-container > .wp-block-group,
.is-root-container > .wp-block-block > .wp-block-group { margin-block: 0; }

.ca-mk-measure { max-width: 62ch; margin-inline: auto; }

/* --- Buttons in patterns ------------------------------------------------ */

.ca-page-content .wp-block-button__link,
.is-root-container .wp-block-button__link {
  background: var(--ca-orange);
  color: var(--ca-cream);
  border-radius: var(--ca-r-pill);
  padding: 14px 28px;
  font-family: var(--ca-font-body);
  font-weight: 700;
  font-size: var(--ca-text-base);
}
.ca-page-content .wp-block-button__link:hover,
.is-root-container .wp-block-button__link:hover { background: var(--ca-orange-dark); }

.wp-block-buttons { margin-top: 24px; }

/* --- Location picker ---------------------------------------------------- */

.ca-mk-picker { max-width: 620px; margin-inline: auto; text-align: center; }
.ca-mk-picker__title {
  font-family: var(--ca-font-display);
  font-weight: 700;
  font-size: var(--ca-text-h2);
  color: var(--ca-ink);
  margin: 0 0 12px;
}
.ca-mk-picker__label {
  display: block;
  margin: 22px 0 8px;
  font-family: var(--ca-font-mono);
  font-size: var(--ca-text-xs);
  letter-spacing: var(--ca-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--ca-faint);
  text-align: left;
}
.ca-mk-picker select { margin-bottom: 14px; }
.ca-mk-picker .ca-btn { width: 100%; }
.ca-mk-picker .ca-btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.ca-mk-picker__note {
  margin-top: 14px;
  background: var(--ca-sand);
  border-radius: var(--ca-r-sm);
  padding: 14px 16px;
  font-size: 14px;
  color: var(--ca-body);
  text-align: left;
}

/* --- Contact form ------------------------------------------------------- */

.ca-mk-form { max-width: 640px; margin-inline: auto; text-align: left; }
.ca-mk-form__row { display: flex; gap: 14px; flex-wrap: wrap; }
.ca-mk-form__row > * { flex: 1 1 220px; }
.ca-mk-form__field { margin: 0 0 16px; }
.ca-mk-form fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.ca-mk-form__radio { display: inline-flex; align-items: center; gap: 6px; margin-right: 18px; font-size: 14px; }
.ca-mk-form__consent { font-size: 14px; margin-bottom: 20px; }
.ca-input--area { border-radius: var(--ca-r-md); resize: vertical; }

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.ca-mk-form__hp {
  position: absolute !important;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

.ca-mk-form__error {
  background: #FDE7E5;
  border-left: 4px solid var(--ca-red);
  padding: 12px 16px;
  margin-bottom: 18px;
  font-size: 14px;
}

.ca-mk-legal__item {
  background: var(--ca-white);
  border: 1px solid var(--ca-hairline);
  border-radius: var(--ca-r-sm);
  padding: 16px 20px;
  margin-bottom: 10px;
}
.ca-mk-legal__item summary {
  cursor: pointer;
  font-family: var(--ca-font-display);
  font-weight: 700;
  font-size: 16px;
  color: var(--ca-ink);
}

/* Editor-only hint where a dynamic section has no content behind it. */
.ca-empty-notice {
  max-width: var(--ca-width);
  margin: 20px auto;
  padding: 14px 18px;
  border-left: 4px solid var(--ca-orange);
  border-radius: 0 var(--ca-r-sm) var(--ca-r-sm) 0;
  background: var(--ca-sand);
  color: var(--ca-body);
  font-size: 14px;
}

/*
 * Page content sits at the site measure by default. Full-bleed sections such as
 * the tinted bands break out of it themselves, so this only affects plain
 * paragraphs, headings and lists typed straight into a page.
 *
 * The editor: its page body is .is-root-container, the hero's own wrapper is
 * .ca-hero-block, and a previewed part (review strip, events rail, Q&A, a
 * store part) sits two wrappers down in .ca-part-preview or
 * .ca-block-preview — the part itself is what the page has, so the rule
 * reaches it there. A synced pattern (a store's shared layout) adds one more
 * wrapper, .wp-block-block, that the page does not have: its blocks are
 * measured as if they sat on the page body.
 */
.ca-page-content > *:not(.ca-sec):not(.ca-tabs):not(.ca-hero):not(.ca-promos):not(.ca-marquee),
.is-root-container > *:not(.ca-sec):not(.ca-tabs):not(.ca-hero):not(.ca-promos):not(.ca-marquee):not(.ca-hero-block):not(.ca-part-preview):not(.ca-block-preview):not(.wp-block-block),
.is-root-container > .wp-block-block > *:not(.ca-sec):not(.ca-tabs):not(.ca-hero):not(.ca-promos):not(.ca-marquee):not(.ca-hero-block):not(.ca-part-preview):not(.ca-block-preview),
.is-root-container > :is(.ca-part-preview, .ca-block-preview) > * > *:not(.ca-sec):not(.ca-tabs):not(.ca-hero):not(.ca-promos):not(.ca-marquee),
.is-root-container > .wp-block-block > :is(.ca-part-preview, .ca-block-preview) > * > *:not(.ca-sec):not(.ca-tabs):not(.ca-hero):not(.ca-promos):not(.ca-marquee),
.editor-post-title.wp-block {
  max-width: var(--ca-width);
  margin-inline: auto;
  padding-inline: var(--ca-gutter);
}

.ca-mk-legal__item p {
  margin-top: 12px;
  color: var(--ca-muted);
  font-size: 15px;
}
.ca-mk-legal__item p + p { margin-top: 10px; }

/* --- Contact form -------------------------------------------------------- */

.ca-req { color: var(--ca-red); }
.ca-optional { color: var(--ca-faint); font-weight: 400; font-size: 13px; }
.ca-mk-form__field > label, .ca-mk-form__field > legend {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  font-size: 15px;
  color: var(--ca-ink);
}
.ca-mk-form__consent label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14px;
  line-height: 1.5;
}
.ca-mk-form__consent input { margin-top: 3px; flex: none; }
.ca-mk-form__submit { width: 100%; margin-top: 8px; }
.ca-mk-form__sent {
  background: var(--ca-teal-tint);
  border-left: 4px solid var(--ca-teal);
  padding: 18px 20px;
  border-radius: 0 var(--ca-r-sm) var(--ca-r-sm) 0;
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
}
.ca-mk-form__sent-mark { font-size: 40px; margin: 0 0 8px; }
.ca-mk-form__sent h3 { font-size: clamp(20px, 3vw, 28px); margin: 0 0 10px; }

/* --- Main office --------------------------------------------------------- */

.ca-office { text-align: center; }
.ca-office__title {
  font-family: var(--ca-font-display);
  font-weight: 700;
  font-size: clamp(18px, 2.4vw, 24px);
  color: var(--ca-ink);
  margin: 0 0 12px;
}
.ca-office__line { margin: 0 0 6px; color: var(--ca-body); font-size: var(--ca-text-base); overflow-wrap: anywhere; }

/* --- Paycor embed -------------------------------------------------------- */

/* The widget writes an iframe in; give it room and stop it overflowing. */
.ca-paycor__frame { min-height: 420px; }
.ca-paycor__frame iframe { width: 100% !important; border: 0; }
.ca-paycor__title {
  font-family: var(--ca-font-display);
  font-weight: 700;
  font-size: clamp(20px, 3vw, 30px);
  margin: 0 0 20px;
  text-align: center;
}

/* ==========================================================================
   Page width — the last few holdouts

   Side pages built from plain blocks, and anything dropped straight into a
   page, now sit on the same measure as every designed section.
   ========================================================================== */

.ca-page-content > .wp-block-group,
.ca-page-content > .wp-block-columns,
.ca-page-content > .wp-block-image,
.ca-page-content > .wp-block-buttons,
.ca-page-content > .wp-block-details,
.ca-page-content > ul,
.ca-page-content > ol,
.ca-page-content > table,
.is-root-container > .wp-block-group,
.is-root-container > .wp-block-columns,
.is-root-container > .wp-block-image,
.is-root-container > .wp-block-buttons,
.is-root-container > .wp-block-details,
.is-root-container > ul,
.is-root-container > ol,
.is-root-container > table,
.is-root-container > .wp-block-block > .wp-block-group,
.is-root-container > .wp-block-block > .wp-block-columns,
.is-root-container > .wp-block-block > .wp-block-image,
.is-root-container > .wp-block-block > .wp-block-buttons,
.is-root-container > .wp-block-block > .wp-block-details,
.is-root-container > .wp-block-block > ul,
.is-root-container > .wp-block-block > ol,
.is-root-container > .wp-block-block > table {
  max-width: var(--ca-width);
  margin-inline: auto;
  padding-inline: var(--ca-gutter);
}

/* Checkbox fields in a built form sit inline with their label. */
.ca-mk-form__consent-inline {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
}
.ca-mk-form__consent-inline input { margin-top: 3px; flex: none; }
