/* ---------- General layout ---------- */
.cvr-form { max-width: 760px; }
.cvr-form fieldset { border: 0; padding: 0; margin: 0 0 2.5rem; }
.cvr-form legend {
  font-size: .75rem; letter-spacing: .08em; text-transform: uppercase;
  color: #555; margin-bottom: 1rem; padding: 0;
}
.cvr-form label, .cvr-form .cvr-label { display: block; font-size: .9rem; margin-bottom: 1rem; }
.cvr-form input[type=text], .cvr-form input[type=email], .cvr-form input[type=tel],
.cvr-form select, .cvr-form textarea {
  display: block; width: 100%; max-width: none; box-sizing: border-box;
  margin: .3rem 0 0 0;                       /* kills the theme's left indent */
  padding: .55rem .7rem; border: 1px solid #d0d5dd; border-radius: 6px; font: inherit;
}
/* text inputs and the select share one explicit height so they line up in a row */
.cvr-form input[type=text], .cvr-form input[type=email], .cvr-form input[type=tel],
.cvr-form select {
  height: 3rem; line-height: 1.4;
}
.cvr-form select { padding-right: 2rem; cursor: pointer; }
.cvr-form .wpcf7-form-control-wrap { display: block; margin: 0; padding: 0; }
.cvr-form textarea { min-height: 90px; }
.cvr-row { display: grid; gap: 1rem; }
.cvr-row--2 { grid-template-columns: 1fr 1fr; }
.cvr-row--city { grid-template-columns: 2fr 1fr 1fr; }
@media (max-width: 600px) { .cvr-row { grid-template-columns: 1fr !important; } }

/* ---------- Step 1: card selector ---------- */
.cvr-cards .wpcf7-radio {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
}
@media (max-width: 700px) { .cvr-cards .wpcf7-radio { grid-template-columns: 1fr; } }

.cvr-cards .wpcf7-list-item { margin: 0; display: block; }
.cvr-cards .wpcf7-list-item label {
  position: relative; display: block; height: 100%; margin: 0;
  padding: 1.1rem; border: 1px solid #d0d5dd; border-radius: 8px;
  cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
/* keep the real radio in the DOM for accessibility, but hide it visually */
.cvr-cards input[type=radio] {
  position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0;
}
.cvr-cards .wpcf7-list-item label:hover { border-color: #8aa4d6; }
.cvr-cards .wpcf7-list-item:has(input:checked) label {
  border-color: #1f5fd1; box-shadow: 0 0 0 2px #1f5fd1 inset;
}
.cvr-cards .wpcf7-list-item:has(input:focus-visible) label {
  outline: 2px solid #1f5fd1; outline-offset: 3px;
}

/* card contents (injected by cvr-form.js) */
.cvr-card__badge {
  display: inline-block; font-size: .7rem; padding: .15rem .5rem; border-radius: 999px;
  margin-bottom: .75rem; background: #eef2f7; color: #333;
}
.cvr-card__badge--excel { background: #e6f4ea; color: #1e6b32; }
.cvr-card__badge--pdf   { background: #e6eefb; color: #1f4fa3; }
.cvr-card__badge--single{ background: #fbf0dd; color: #8a5a06; }
.cvr-card__title { font-size: .95rem; margin-bottom: .35rem; }
.cvr-card__price { font-size: 1.3rem; font-weight: 600; margin-bottom: .6rem; }
.cvr-card__price small { font-size: .75rem; font-weight: 400; color: #666; }
.cvr-card__desc { font-size: .8rem; color: #555; line-height: 1.4; }

/* ---------- Step 3 ---------- */
.cvr-intent .wpcf7-list-item { margin: 0 2rem 0 0; }
.cvr-intent label { display: inline-flex; gap: .4rem; align-items: center; }

/* ---------- Footer ---------- */
.cvr-footer { display: flex; align-items: center; gap: 1rem; }
.cvr-fineprint { font-size: .75rem; color: #666; max-width: 320px; margin: 0; }
/* if anything wraps the submit (a <p> from autop, a theme span), flatten it into the flex row */
.cvr-footer > p:not(.cvr-fineprint), .cvr-footer > div, .cvr-footer > span:not(.wpcf7-spinner) { display: contents; }
.cvr-footer .wpcf7-submit { margin-left: auto; }        /* hug the right edge */
.cvr-footer .wpcf7-spinner { order: -1; margin: 0 .5rem 0 0; } /* spinner sits to the button's left */
.cvr-form .wpcf7-submit {
  padding: .6rem 1.1rem; border: 1px solid #d0d5dd; border-radius: 6px;
  background: #fff; font: inherit; cursor: pointer;
}
