/* Favorite Things: front-end styles (black/gold, aligns with the theme).
   Falls back to sensible values if theme brand vars aren't present. */

/* ---- Form page layout -------------------------------------------------- */
.pta-ft-formwrap {
	max-width: 1060px;
	margin: 0 auto;
}
.pta-ft-subtitle {
	text-align: center;
	color: var(--pta-gray, #6b6b6b);
	font-weight: 600;
	font-size: 1.05rem;
	margin: 4px 0 0;
}
.pta-ft-intro {
	text-align: center;
	max-width: 760px;
	margin: 10px auto 18px;
	font-size: 1.08rem;
	color: var(--pta-ink, #1f1f1f);
}
.pta-ft-narrow {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}

/* ---- "Email me my link" page ------------------------------------------- */
.pta-ft-request {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
	padding: 10px 0 30px;
}
.pta-ft-request .pta-ft-intro {
	margin: 16px auto 6px;
}
.pta-ft-request .pta-ft-intro + .pta-ft-intro {
	margin: 0 auto 26px;
}
.pta-ft-request-fallback-lead {
	margin-top: 14px !important;
}
.pta-ft-request-card {
	text-align: center;
	padding: 32px 36px;
}
.pta-ft-request-label {
	display: block;
	font-size: 1.1rem;
	font-weight: 700;
	margin-bottom: 10px;
}
.pta-ft-request-card input[type="email"],
.pta-ft-request-card input[type="text"] {
	max-width: 420px;
	text-align: center;
}
.pta-ft-name-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	max-width: 420px;
	margin: 0 auto 16px;
}
@media (max-width: 520px) {
	.pta-ft-name-row {
		grid-template-columns: 1fr;
	}
}

/* ---- "Is this you?" confirm card ---------------------------------------- */
/* The question must be unmissable: gold frame + cream fill (the site's
   "pay attention" language), while the request form hides underneath it. */
.pta-ft-form-hidden {
	display: none;
}
.pta-ft-confirm-card {
	text-align: center;
	padding: 26px 30px;
	margin-top: 18px;
	background: var(--pta-cream, #fbf6ec);
	border: 3px solid var(--pta-primary, #f4b41c);
	box-shadow: 0 6px 22px rgba(0, 0, 0, .14);
}
.pta-ft-confirm-title {
	font-size: 1.3rem;
	font-weight: 800;
	margin: 0 0 16px;
}
.pta-ft-candidate {
	display: flex;
	align-items: center;
	gap: 16px;
	text-align: left;
	padding: 14px 0;
	border-top: 1px solid var(--pta-line, #e7e2d6);
}
.pta-ft-candidate:first-of-type {
	border-top: 0;
}
.pta-ft-avatar--candidate {
	flex: none;
	width: 64px;
}
.pta-ft-avatar--candidate img {
	width: 64px;
	height: 64px;
	border-width: 2px;
}
.pta-ft-candidate-body {
	flex: 1;
	min-width: 0;
}
.pta-ft-candidate-name {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0;
}
.pta-ft-candidate-meta {
	color: var(--pta-gray, #6b6b6b);
	margin: 2px 0 0;
}
.pta-ft-candidate-actions {
	margin: 10px 0 0;
}
@media (max-width: 520px) {
	.pta-ft-candidate {
		flex-direction: column;
		text-align: center;
		gap: 8px;
	}
}
.pta-ft-confirm-none-wrap {
	margin: 16px 0 0;
}
.pta-ft-confirm-none {
	background: none;
	border: 0;
	padding: 0;
	color: var(--pta-gray, #6b6b6b);
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.pta-ft-request-card .pta-ft-actions {
	margin-top: 22px;
}
.pta-ft-request-fallback {
	margin-top: 26px;
}
.pta-ft-request-fallback .pta-form-help {
	margin: 2px 0;
}
.pta-ft-request-fallback a {
	color: var(--pta-secondary, #d99a00);
	font-weight: 600;
}

/* ---- "Good to know" notes ---------------------------------------------- */
.pta-ft-notes {
	background: var(--pta-cream, #fbf6ec);
	border: 1px solid var(--pta-line, #e7e2d6);
	border-left: 5px solid var(--pta-primary, #f4b41c);
	border-radius: var(--pta-radius, 10px);
	padding: 16px 22px;
	margin: 0 0 22px;
}
.pta-ft-note-callout {
	margin: 0 0 10px;
	font-size: 1.05rem;
}
.pta-ft-note-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pta-ft-note-list li { padding: 3px 0; }
.pta-ft-notes a {
	color: var(--pta-secondary, #d99a00);
	font-weight: 600;
}

/* ---- Messages ---------------------------------------------------------- */
.pta-ft-message {
	border-radius: var(--pta-radius, 10px);
	padding: 14px 18px;
	margin: 18px 0;
	font-weight: 600;
	border: 1px solid transparent;
	white-space: pre-line; /* \n in a server message renders as a line break */
}
.pta-ft-message--success { background: #eaf7ee; border-color: #b6e0c2; color: #1a7f37; }
.pta-ft-message--error   { background: #fdecec; border-color: #f3c2c2; color: #b32d2e; }
.pta-ft-message--info    { background: #fff8e6; border-color: #f4e2a8; color: #7a5b00; }
.pta-ft-message a { color: inherit; text-decoration: underline; font-weight: 700; }

/* ---- Form -------------------------------------------------------------- */
.pta-ft-form .pta-ft-fieldset {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 26px;
	background: var(--pta-white, #ffffff);
	border: 1px solid var(--pta-line, #e7e2d6);
	border-radius: var(--pta-radius, 10px);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
	padding: 6px 22px 20px;
	margin: 0 0 22px;
}
.pta-ft-form legend {
	font-weight: 800;
	font-size: 1.15rem;
	padding: 0 10px 0 0;
	margin-bottom: 4px;
	color: var(--pta-black, #141414);
	border-bottom: 3px solid var(--pta-primary, #f4b41c);
}
.pta-ft-row { margin: 4px 0; min-width: 0; }
/* Long-answer rows get the full width. */
.pta-ft-row--wide,
.pta-ft-row--birthday { grid-column: 1 / -1; }
.pta-ft-row label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
	color: var(--pta-ink, #1f1f1f);
}
/* Text controls themselves come from the theme's site-wide form layer. */
.pta-ft-row--birthday {
	background: var(--pta-cream, #fbf6ec);
	border: 1px solid var(--pta-line, #e7e2d6);
	border-radius: var(--pta-radius, 10px);
	padding: 14px 18px 16px;
	margin: 0 0 22px;
}
.pta-ft-birthday-selects {
	display: flex;
	gap: 10px;
	max-width: 420px;
}
.pta-ft-birthday-selects select[name="birthday_day"] { max-width: 130px; }
.pta-ft-classurl { margin-top: 14px; }
.pta-ft-classurl input { max-width: 420px; }
.pta-ft-classurl .pta-form-help { margin-top: 4px; }

/* ---- Staff Birthdays page ---------------------------------------------- */
.pta-ft-birthdays {
	max-width: 920px;
	margin: 0 auto;
}
.pta-ft-bd-month {
	background: var(--pta-white, #fff);
	border: 1px solid var(--pta-line, #e7e2d6);
	border-radius: var(--pta-radius, 10px);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
	margin: 0 0 40px;
	overflow: hidden;
}
/* Doubled selector so the theme's generic .pta-content h2 margins lose. */
.pta-ft-birthdays .pta-ft-bd-month-title {
	margin: 0;
	background: var(--pta-black, #141414);
	/* Bright primary reads on the dark strip in BOTH palettes (Henry's gold,
	   Cox's light blue); the plain primary is too dim on Cox navy. */
	color: var(--pta-primary-bright, var(--pta-primary, #f4b41c));
	font-family: var(--pta-font-display, "PTA Display", "Arial Narrow", sans-serif);
	font-weight: 400;
	font-size: 1.5rem;
	letter-spacing: 0.06em;
	padding: 12px 22px;
	border-bottom: 3px solid var(--pta-primary, #f4b41c);
}
.pta-ft-bd-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pta-ft-bd-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 22px;
	border-top: 1px solid var(--pta-line, #e7e2d6);
}
.pta-ft-bd-row:first-child { border-top: 0; }
/* A birthday in the next 7 days gets the celebration treatment. */
.pta-ft-bd-row--soon {
	background: #fff8e6;
	border-left: 5px solid var(--pta-primary, #f4b41c);
	padding-left: 17px;
}
.pta-ft-bd-who {
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 12px;
}
.pta-ft-bd-who a {
	font-weight: 700;
	text-decoration: none;
}
.pta-ft-bd-who .pta-ft-person-role {
	display: block;
	color: var(--pta-gray, #6b6b6b);
	font-weight: 400;
	font-size: 0.9em;
	margin-top: 2px;
}
.pta-ft-bd-who a:hover { text-decoration: underline; }
.pta-ft-bd-when {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: none;
}
.pta-ft-bd-date {
	font-weight: 700;
	color: var(--pta-ink, #1f1f1f);
}
.pta-ft-bd-pill {
	background: var(--pta-primary, #f4b41c);
	color: var(--pta-on-primary, #141414);
	font-size: 0.78rem;
	font-weight: 800;
	padding: 4px 12px;
	border-radius: 999px;
	white-space: nowrap;
}
.pta-ft-actions {
	text-align: center;
	margin-top: 6px;
}

@media (max-width: 719px) {
	.pta-ft-form .pta-ft-fieldset { grid-template-columns: 1fr; }
}

/* ---- Avatars (staff profile photos) ------------------------------------ */
.pta-ft-avatar { display: block; }
.pta-ft-avatar img {
	display: block;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid var(--pta-primary, #f4b41c);
	background: var(--pta-cream, #fbf6ec);
}
/* Black ring = hasn't shared favorites yet (the photo isn't clickable);
   gold ring = there's a profile behind it. */
.pta-ft-avatar--pending img { border-color: var(--pta-black, #141414); }
.pta-ft-avatar--profile { margin: 0 auto 16px; width: 150px; }
.pta-ft-avatar--profile img { width: 150px; height: 150px; border-width: 4px; }
.pta-ft-avatar--list { margin: 0 auto 8px; width: 64px; }
.pta-ft-avatar--list img { width: 64px; height: 64px; border-width: 2px; }
.pta-ft-avatar--row { flex: none; width: 44px; }
.pta-ft-avatar--row img { width: 44px; height: 44px; border-width: 2px; }
.pta-ft-avatar--form { flex: none; width: 56px; }
.pta-ft-avatar--form img { width: 56px; height: 56px; border-width: 2px; border-radius: 50%; object-fit: cover; }

/* Form photo row */
.pta-ft-photo { margin-bottom: 16px; }
.pta-ft-photo-row {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 4px;
}
.pta-ft-photo-row input[type="file"] { max-width: 420px; }
.pta-ft-photo-remove {
	display: inline-block;
	margin-top: 8px;
	font-size: 0.95rem;
	color: var(--pta-gray, #6b6b6b);
}

/* ---- Detail page ------------------------------------------------------- */
/* Header meta (birthday, class link, updated): centered like the subtitle. */
.pta-ft-meta {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	justify-content: center;
	text-align: center;
	color: var(--pta-gray, #6b6b6b);
	font-weight: 600;
}
.pta-ft-meta a { color: var(--pta-secondary, #d99a00); }
.pta-ft-updated-line {
	text-align: center;
	color: var(--pta-gray, #6b6b6b);
	font-size: 0.85rem;
	margin: 26px 0 4px;
}
.pta-ft-print {
	text-align: right;
	margin: 6px 0 20px;
}
.pta-ft-empty {
	background: var(--pta-cream, #fbf6ec);
	border: 1px dashed var(--pta-line, #e7e2d6);
	border-radius: var(--pta-radius, 10px);
	padding: 20px;
	color: var(--pta-gray, #6b6b6b);
	text-align: center;
}
.pta-ft-sections {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
}
.pta-ft-section {
	border: 1px solid var(--pta-line, #e7e2d6);
	border-radius: var(--pta-radius, 10px);
	padding: 14px 18px;
	break-inside: avoid;
}
.pta-ft-section-title {
	margin: 0 0 8px;
	font-size: 1.05rem;
	border-bottom: 2px solid var(--pta-primary, #f4b41c);
	padding-bottom: 6px;
}
.pta-ft-list { margin: 0; }
.pta-ft-list dt { font-weight: 700; margin-top: 8px; }
.pta-ft-list dd { margin: 0 0 2px; }
.pta-ft-back { margin-top: 24px; }

/* ---- Live search (staff list + birthdays) ------------------------------ */
.pta-ft-search {
	max-width: 480px;
	margin: 0 auto 24px;
}
.pta-ft-search-empty { max-width: 480px; margin: 0 auto 24px; }

/* ---- Public list ------------------------------------------------------- */
/* Centered to match the centered page title. */
.pta-ft-note { text-align: center; color: var(--pta-gray, #6b6b6b); }
.pta-ft-group { margin: 0 0 48px; }
.pta-ft-group-title {
	border-bottom: 2px solid var(--pta-primary, #f4b41c);
	padding-bottom: 6px;
}
.pta-ft-people {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 8px 20px;
}
.pta-ft-people li { padding: 6px 0; text-align: center; }
/* Name is the title line; role and the pending flag stack beneath it. */
.pta-ft-people .pta-ft-person-name {
	display: block;
	font-weight: 600;
	text-decoration: none;
}
a.pta-ft-person-name:hover { text-decoration: underline; }
.pta-ft-people .pta-ft-person-role {
	display: block;
	color: var(--pta-gray, #6b6b6b);
	font-weight: 400;
	font-size: 0.9em;
}
.pta-ft-people .pta-ft-pending {
	display: block;
	margin-top: 2px;
	font-size: 0.78em;
	font-weight: 600;
	color: var(--pta-secondary, #8a6d00);
}

@media print {
	.pta-ft-print, .pta-ft-back, .pta-ft-updated-line,
	.site-header, .site-footer,
	.pta-header, .pta-footer, header, footer { display: none !important; }
	.pta-ft-sections { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   Standalone scaffold: only under .pta-ft-standalone, i.e. the
   plugin's fallback detail template rendering inside a FOREIGN
   theme, as Cox was under Divi. Supplies the page basics the PTA
   Foundry theme normally provides. Palette tokens come from the
   plugin's injected :root (pta-site-vars), themed per site.
   ============================================================ */
.pta-ft-standalone {
  font-family: var(--pta-font, "Helvetica Neue", Arial, "Segoe UI", system-ui, sans-serif);
  color: var(--pta-ink, #1f1f1f);
  line-height: 1.6;
}
.pta-ft-standalone .pta-container {
  width: 100%;
  max-width: var(--pta-maxw, min(1440px, 94vw));
  margin: 0 auto;
  padding: 24px 20px 48px;
}
.pta-ft-standalone .pta-entry-title {
  text-align: center;
  margin: 8px 0;
  font-weight: 800;
  line-height: 1.15;
  color: var(--pta-black, #141414);
}
.pta-ft-standalone .pta-brand-rule {
  border: 0;
  height: 3px;
  width: 90px;
  margin: 14px auto 22px;
  background: var(--pta-primary, #f4b41c);
}
.pta-ft-standalone .pta-btn {
  display: inline-block;
  background: var(--pta-primary, #f4b41c);
  color: var(--pta-on-primary, #141414);
  border: 0;
  border-radius: 8px;
  padding: 10px 20px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
/* Darken on hover, never brighten: a brighter fill under on-primary text
   drops a blue brand to 3.04:1. */
.pta-ft-standalone .pta-btn:hover {
  background: var(--pta-secondary, #d99a00);
  color: var(--pta-on-primary, #141414);
}

/* ============================================================
   TEMP page-title banner (standalone mode): replicates Cox's
   existing Divi page headers 1:1 until ptafoundry-theme takes
   over. Tiled logo star-field (--pta-banner-image), blue/white
   gradient wash and inner shadow from the prod section, small
   logo inline beside an Oswald title (--pta-banner-text),
   responsive type instead of prod's fixed 60px.
   ============================================================ */
.pta-ft-banner {
  position: relative;
  background: none;
  padding: 24px 20px 8px;
  margin: 0 0 24px;
  text-align: center;
}
/* No background band, so the bleed modifier stays a no-op (a 100vw breakout
   would only invite horizontal-scroll quirks). */
.pta-ft-banner--bleed {
  width: auto;
  left: auto;
  margin-left: 0;
}
.pta-ft-banner-heading {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-family: Oswald, Helvetica, Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(1.9rem, 5vw, 3.75rem);
  line-height: 1.1;
  color: var(--pta-banner-text, var(--pta-secondary, #d99a00));
}
.pta-ft-banner-logo {
  height: clamp(44px, 6vw, 78px);
  width: auto;
  flex: none;
}
/* Phones: the logo doesn't work beside the text; stack it above. */
@media (max-width: 640px) {
  .pta-ft-banner-heading {
    flex-direction: column;
    gap: 8px;
  }
}

/* Category jump links under the search box (Settings-toggleable). */
.pta-ft-jumpnav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  max-width: 920px;
  margin: 0 auto 26px;
}
/* !important on color: a host theme's link rule can out-specify these chips.
   Divi's Extra emits .et_pb_pagebuilder_layout .et_pb_code a at (0,2,1) after
   this file, and these chips render inside that code module, so both the rest
   and hover colors lost and the hover chip became unreadable text on a filled
   background. */
.pta-ft-jumpnav a {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid var(--pta-line, #e7e2d6);
  border-radius: 999px;
  background: var(--pta-white, #ffffff);
  color: var(--pta-secondary, #d99a00) !important;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.pta-ft-jumpnav a:hover {
  background: var(--pta-primary, #f4b41c);
  color: var(--pta-on-primary, #141414) !important;
}
.pta-ft-group {
  /* Anchored jumps land clear of sticky site headers. */
  scroll-margin-top: 110px;
}

/* Standalone (foreign theme, as Cox was under Divi): centered group headings
   and the site's primary gradient on every dark strip. The PTA Foundry theme
   keeps its own black-and-brand look via theme support. */
.pta-ft-standalone .pta-ft-group-title {
  text-align: center;
  font-family: Oswald, Helvetica, Arial, sans-serif;
}
.pta-ft-standalone.pta-ft-birthdays .pta-ft-bd-month-title,
.pta-ft-standalone .pta-ft-section-title {
  background: linear-gradient(135deg, var(--pta-primary, #f4b41c), var(--pta-secondary, #d99a00));
  color: var(--pta-on-primary, #ffffff);
  border-bottom-color: var(--pta-primary-bright, #ffc845);
}

/* ============================================================
   Search box: solid base styling so the input is a real, visible,
   comfortable control under ANY theme (Divi ships no input chrome
   here). The PTA Foundry theme's own rules load later and win.
   ============================================================ */
.pta-ft-search {
  text-align: center;
  margin: 6px auto 22px;
}
.pta-ft-search .pta-ft-search-input {
  display: inline-block;
  width: min(480px, 92%);
  padding: 12px 18px;
  font-size: 1.05rem;
  line-height: 1.4;
  color: var(--pta-ink, #1f1f1f);
  background: var(--pta-white, #ffffff);
  border: 2px solid var(--pta-line, #e7e2d6);
  border-radius: 999px;
  outline: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: border-color 0.15s ease;
}
.pta-ft-search .pta-ft-search-input:focus {
  border-color: var(--pta-primary, #f4b41c);
}

/* ============================================================
   Print: a staff profile fits ONE page. Site chrome, search, and
   action links drop out; type tightens; answers flow in two
   columns; section blocks never split across pages.
   ============================================================ */
@media print {
  header:not(.pta-ft-banner), nav, footer, aside,
  .pta-site-header, .pta-site-footer, .pta-nav,
  #wpadminbar, .pta-ft-search, .pta-ft-search-empty,
  .pta-ft-print, .pta-ft-back, .pta-ft-note {
    display: none !important;
  }
  body {
    background: #ffffff !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
  }
  .pta-ft-banner {
    background: #ffffff;
    border-bottom: 3px solid var(--pta-primary, #f4b41c);
    border-radius: 0;
    padding: 0 0 6px;
    margin: 0 0 10px;
  }
  .pta-ft-banner-heading {
    color: #000000;
    font-size: 20px;
  }
  .pta-ft-banner-logo { display: none !important; }
  .pta-ft-banner--bleed { width: auto; left: auto; margin-left: 0; }
  .pta-ft-avatar--profile img {
    width: 72px !important;
    height: 72px !important;
  }
  .pta-ft-subtitle, .pta-ft-meta { margin: 2px 0 !important; }
  .pta-ft-sections {
    column-count: 2;
    column-gap: 18px;
  }
  .pta-ft-section {
    break-inside: avoid;
    page-break-inside: avoid;
    box-shadow: none !important;
    border: 1px solid #dddddd;
    margin: 0 0 10px !important;
  }
  .pta-ft-section-title {
    font-size: 13px !important;
    padding: 4px 8px !important;
    margin: 0 !important;
  }
  .pta-ft-list { margin: 4px 8px !important; }
  .pta-ft-list dt { font-size: 10px !important; }
  .pta-ft-list dd { font-size: 11px !important; margin: 0 0 4px !important; }
  .pta-ft-updated-line { font-size: 9px !important; color: #888888 !important; }
}

/* ============================================================
   Standalone form chrome (foreign theme): visible inputs, card
   styling, and comfortable labels for the /start/ and magic-link
   form pages. The PTA Foundry theme provides its own versions.
   ============================================================ */
.pta-ft-standalone input[type="text"],
.pta-ft-standalone input[type="email"],
.pta-ft-standalone input[type="url"],
.pta-ft-standalone select,
.pta-ft-standalone textarea {
  width: 100%;
  padding: 11px 14px;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--pta-ink, #1f1f1f);
  background: var(--pta-white, #ffffff);
  border: 2px solid var(--pta-line, #e7e2d6);
  border-radius: 8px;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.15s ease;
}
.pta-ft-standalone input:focus,
.pta-ft-standalone select:focus,
.pta-ft-standalone textarea:focus {
  border-color: var(--pta-primary, #f4b41c);
}
.pta-ft-standalone .pta-card {
  background: var(--pta-white, #ffffff);
  border: 1px solid var(--pta-line, #e7e2d6);
  border-radius: var(--pta-radius, 10px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
}
.pta-ft-standalone .pta-btn {
  display: inline-block;
  background: var(--pta-primary, #f4b41c);
  color: var(--pta-on-primary, #141414);
  border: 0;
  border-radius: 8px;
  padding: 12px 26px;
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease;
}
/* Darken on hover, never brighten: a brighter fill under on-primary text
   drops a blue brand to 3.04:1. */
.pta-ft-standalone .pta-btn:hover {
  background: var(--pta-secondary, #d99a00);
  color: var(--pta-on-primary, #141414);
}
.pta-ft-standalone .pta-btn--lg {
  padding: 14px 34px;
}
.pta-ft-standalone .pta-form-help {
  color: var(--pta-gray, #6b6b6b);
  font-size: 0.92rem;
}
