/* Principal Playbook: overrides applied after the design system */
/* .contact-detail:first-of-type, counted the way the original markup counts it */
:root .contact-detail:not(.contact-detail ~ *):not(:where(.elementor-widget):has(> .contact-detail) ~ *),
:root :where(.elementor-widget):has(> .contact-detail):not(:where(.elementor-widget):has(> .contact-detail) ~ *):not(.contact-detail ~ *) > .contact-detail { border-top: 1px solid var(--line); }

/* ---------------------------------------------------------------------
   Contact inquiry form (Elementor Pro Form) dressed as the original .form-grid
   --------------------------------------------------------------------- */
:root .pp-form .elementor-form-fields-wrapper {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s5);
  margin: 0 !important;
}
@media (min-width: 640px) {
  :root .pp-form .elementor-form-fields-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root .pp-form .elementor-field-group.elementor-col-50 { grid-column: auto; }
}
:root .pp-form .elementor-field-group {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  grid-column: 1 / -1;
}
:root .pp-form .elementor-field-label {
  font-family: var(--font-data);
  font-size: var(--t-label);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--ink-soft);
  display: inline-block;
  margin: 0 0 var(--s2) !important;
  padding: 0 !important;
  line-height: 1.65;
}
:root .pp-form .elementor-field-group .elementor-field,
:root .pp-form .elementor-field-group .elementor-select-wrapper select {
  width: 100%;
  min-height: 0;
  padding: 0.85rem 1rem;
  background: var(--surface);
  background-color: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-family: var(--font-text);
  font-size: var(--t-sm);
  line-height: 1.65;
  box-shadow: none;
  transition: border-color var(--fast) var(--ease-out), box-shadow var(--fast) var(--ease-out), background var(--fast) var(--ease-out);
}
:root .pp-form .elementor-field::placeholder { color: color-mix(in srgb, var(--ink-soft) 80%, transparent); opacity: 1; }
:root .pp-form .elementor-field:hover { border-color: color-mix(in srgb, var(--ink) 32%, transparent); }
:root .pp-form .elementor-field:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}
:root .pp-form .elementor-field-type-textarea textarea { min-height: 8.5rem; resize: vertical; }
:root .pp-form .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
:root .pp-form .elementor-select-wrapper select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 12px) 55%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2.5rem;
}
:root .pp-form .elementor-field-type-html { margin-top: calc(var(--s2) - var(--s5)) !important; }
:root .pp-form .elementor-field-type-html .field-note { display: block; font-size: var(--t-xs); color: var(--ink-soft); line-height: 1.65; }
:root .pp-form .e-form__buttons,
:root .pp-form .elementor-field-type-submit {
  display: flex !important;
  flex-wrap: wrap;
  gap: var(--s4);
  align-items: center;
  justify-content: flex-start !important;
}
:root .pp-form .e-form__buttons::after {
  content: "You will normally hear back within two working days.";
  font-size: var(--t-xs);
  color: var(--ink-soft);
}
:root .pp-form .elementor-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--s3);
  width: auto;
  min-height: 0;
  padding: 0.95rem 1.6rem;
  background: var(--pp-red);
  color: var(--pp-cream);
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--fast) var(--ease-out), box-shadow var(--fast) var(--ease-out), transform var(--fast) var(--ease-out);
}
:root .pp-form .elementor-button::after {
  content: "";
  width: 1.35rem;
  height: 1.35rem;
  flex: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f7f2e8' stroke-width='3'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 0.7rem no-repeat;
  transition: transform var(--mid) var(--ease-out), background-color var(--mid) var(--ease-out);
}
:root .pp-form .elementor-button:hover { background: var(--red-deep); color: var(--pp-cream); box-shadow: var(--e2); }
:root .pp-form .elementor-button:hover::after { transform: translate(2px, -1px); background-color: rgba(255, 255, 255, 0.26); }
:root .pp-form .elementor-button:active { transform: translateY(1px); box-shadow: none; }
:root .pp-form .elementor-button .elementor-button-content-wrapper { display: contents; }
:root .pp-form .elementor-message {
  margin-top: var(--s5);
  font-size: var(--t-sm);
  line-height: 1.65;
  color: var(--ink);
}
:root .pp-form .elementor-message.elementor-message-danger { color: var(--pp-red); }
:root .pp-form .elementor-message::before { display: none; }
:root .pp-form .elementor-error .elementor-field { border-color: var(--pp-red); }
:root .pp-form .elementor-error .elementor-message { margin-top: var(--s2); font-size: var(--t-xs); }
:root .pp-form .elementor-field-group .elementor-select-wrapper.elementor-field { padding: 0; border: 0; background: none; box-shadow: none; border-radius: 0; }
:root .pp-form .elementor-button { flex: none; flex-basis: auto; }

:root .pp-form .elementor-button { width: auto !important; line-height: 1.65; }
:root .pp-form .elementor-field-group textarea.elementor-field { min-height: 8.5rem; }
:root .pp-form .e-form__buttons .elementor-button { flex: none !important; flex-basis: auto !important; }

/* WordPress puts .page on <body>; the portal stylesheet uses .page for its own layout. */
body.page.page { padding: 0; display: block; gap: normal; max-width: none; width: auto; }

/* ---------------------------------------------------------------------
   Participant sign in (Elementor Pro Login) dressed as the portal form
   --------------------------------------------------------------------- */
:root .pp-login .elementor-form-fields-wrapper {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--s5) var(--s4);
  margin: 0 !important;
}
:root .pp-login .elementor-field-group {
  display: block !important; width: auto !important; max-width: none !important;
  padding: 0 !important; margin: 0 !important; grid-column: 1 / -1;
}
:root .pp-login .elementor-remember-me { grid-column: 1; order: 3; }
:root .pp-login .elementor-field-group:has(.elementor-lost-password) { grid-column: 2; order: 3; text-align: right; }
:root .pp-login .elementor-field-type-submit { order: 4; }
:root .pp-login .elementor-field-group:nth-child(1) { order: 1; }
:root .pp-login .elementor-field-group:nth-child(2) { order: 2; }
:root .pp-login .elementor-field-label {
  font-family: var(--font-data); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track-label);
  text-transform: uppercase; color: var(--ink-soft); display: inline-block; margin: 0 0 var(--s2) !important; padding: 0 !important; line-height: 1.65;
}
:root .pp-login .elementor-field-group .elementor-field {
  width: 100%; min-height: 0; padding: 0.85rem 1rem; background: var(--surface); color: var(--ink);
  border: 1px solid var(--line); border-radius: var(--radius); font-family: var(--font-text); font-size: var(--t-sm); line-height: 1.65;
  box-shadow: none; transition: border-color var(--fast) var(--ease-out), box-shadow var(--fast) var(--ease-out);
}
:root .pp-login .elementor-field::placeholder { color: color-mix(in srgb, var(--ink-soft) 80%, transparent); opacity: 1; }
:root .pp-login .elementor-field:hover { border-color: color-mix(in srgb, var(--ink) 32%, transparent); }
:root .pp-login .elementor-field:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
:root .pp-login .elementor-remember-me label { display: inline-flex; align-items: center; gap: var(--s2); font-size: var(--t-sm); color: var(--ink); cursor: pointer; }
:root .pp-login .elementor-remember-me input { width: 1rem; height: 1rem; accent-color: var(--pp-red); margin: 0; }
:root .pp-login .elementor-lost-password {
  font-size: var(--t-sm); font-weight: 500; color: var(--ink); text-decoration: none;
  border-bottom: 1px solid currentColor; padding-bottom: 2px;
}
:root .pp-login .elementor-lost-password:hover { color: var(--accent); }
:root .pp-login .elementor-button {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--s3); width: 100%;
  padding: 0.95rem 1.6rem; background: var(--pp-red); color: var(--pp-cream); border: 1px solid transparent; border-radius: var(--radius);
  font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; line-height: 1.65; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer;
  transition: background var(--fast) var(--ease-out), box-shadow var(--fast) var(--ease-out);
}
:root .pp-login .elementor-button::after {
  content: ""; width: 1.35rem; height: 1.35rem; flex: none; border-radius: 50%;
  background: rgba(255, 255, 255, 0.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f7f2e8' stroke-width='3'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 0.7rem no-repeat;
}
:root .pp-login .elementor-button:hover { background: var(--red-deep); box-shadow: var(--e2); }
:root .pp-login .elementor-login__logged-in-message { font-size: var(--t-sm); color: var(--ink-soft); }
/* Waitlist form on Contact: no reply-time note under its button */
:root .pp-waitlist .e-form__buttons::after { content: none; }
