/*
 * Product-page heading/price sizing on assessment-first products.
 * ------------------------------------------------------------------
 * The product title, price, and description sub-headings are theme
 * (Beaver Builder) modules on the shared "Product Single" template that only
 * became visible once the product row was un-hidden (their default sizes ran
 * large). Scoped to those specific BB node IDs (from the live layout data) and
 * only loaded on our product pages, so nothing else on the site is affected.
 * !important is needed to beat Beaver Builder's own generated typography CSS.
 * Adjust the sizes below to taste.
 */
.fl-node-wbgvro02nmhu .fl-heading-text,
.fl-node-wbgvro02nmhu .fl-heading,
.fl-node-wbgvro02nmhu h1 {
	font-size: 28px !important;
	line-height: 1.25 !important;
}

.fl-node-wf5276aigz80,
.fl-node-wf5276aigz80 .price,
.fl-node-wf5276aigz80 .woocommerce-Price-amount {
	font-size: 24px !important;
}

.fl-node-6n0cr3wqbh9v h1,
.fl-node-6n0cr3wqbh9v h2,
.fl-node-6n0cr3wqbh9v h3,
.fl-node-6n0cr3wqbh9v h4 {
	font-size: 20px !important;
	line-height: 1.3 !important;
}

/*
 * "Switching from Mounjaro to Wegovy" promo button (BB button module,
 * node pi4vb06uyzas): white with a green outline by default, filling solid
 * green on hover (its previous always-on appearance). Brand green #15f5ba,
 * dark text kept for readability in both states.
 */
.fl-node-pi4vb06uyzas a.fl-button {
	background: #fff !important;
	border: 2px solid #15f5ba !important;
	color: #001b16 !important;
	transition: background-color 0.15s ease, border-color 0.15s ease !important;
}

.fl-node-pi4vb06uyzas a.fl-button .fl-button-text,
.fl-node-pi4vb06uyzas a.fl-button .fl-button-icon,
.fl-node-pi4vb06uyzas a.fl-button i {
	color: #001b16 !important;
}

.fl-node-pi4vb06uyzas a.fl-button:hover,
.fl-node-pi4vb06uyzas a.fl-button:focus {
	background: #15f5ba !important;
	border-color: #15f5ba !important;
	color: #001b16 !important;
}

/*
 * Row styling echoes this site's own variation-swatch buttons
 * (woo-variation-swatches: white background, box-shadow:0 0 0 1px #a8a8a8,
 * rounded corners) instead of a plain bordered HTML table, so it reads as
 * part of the same product page rather than a generic data table.
 */
.dotor-pricing-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 0.5rem;
	margin: 1rem 0;
}

.dotor-pricing-table th {
	text-align: left;
	font-weight: 600;
	padding: 0 1rem 0.25rem;
	border: none;
}

.dotor-pricing-table td {
	background: var(--wvs-item-background-color, #fff);
	box-shadow: var(--wvs-item-box-shadow, 0 0 0 1px #a8a8a8);
	padding: 0.75rem 1rem;
	border: none;
}

.dotor-pricing-table tr td:first-child {
	border-top-left-radius: 8px;
	border-bottom-left-radius: 8px;
	font-weight: 600;
}

.dotor-pricing-table tr td:last-child {
	border-top-right-radius: 8px;
	border-bottom-right-radius: 8px;
}

.dotor-pricing-note {
	font-weight: 600;
	font-size: 1.05rem;
	color: #000321;
}

/*
 * Two-attribute products (strength/type x pack size) are grouped: a heading
 * row per strength (e.g. "50mg"), then its pack sizes indented beneath, so a
 * long flat matrix reads as a tidy grouped list instead.
 */
.dotor-pricing-table tr.dotor-pricing-group th {
	padding-top: 0.9rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: #000321;
}

.dotor-pricing-table tr.dotor-pricing-suboption td:first-child {
	font-weight: 500;
	padding-left: 1.75rem;
}

/* Out-of-stock rows in the read-only pricing table: greyed out, with a red badge next to the price (matching the option picker). */
.dotor-pricing-table tr.dotor-pricing-row--oos td {
	color: #999;
}

.dotor-pricing-badge {
	display: inline-block;
	margin-left: 0.5rem;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	background: #fbe4e2;
	color: #b32d2e;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	white-space: nowrap;
	vertical-align: middle;
}

/*
 * "Select Your Option" step: each option is a single clickable card (the
 * <label> wraps the radio, so clicking anywhere on it selects it - no
 * separate small radio + "Select" text) styled like the same swatch
 * buttons used elsewhere on the product page.
 */
.dotor-strength-selection__options {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 1rem 0;
}

/* Group heading (e.g. "50mg") above its set of pack-size option cards. */
.dotor-option-group__title {
	margin: 0.75rem 0 0.1rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: #000321;
}

.dotor-option-group__items {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.dotor-option-card {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: var(--wvs-item-background-color, #fff);
	box-shadow: var(--wvs-item-box-shadow, 0 0 0 1px #a8a8a8);
	border-radius: 8px;
	padding: 0.75rem 1rem;
	cursor: pointer;
	transition: box-shadow 0.15s ease;
}

/*
 * .dotor-option-card--selected is toggled explicitly on radio "change"
 * (see the shortcode's inline script) rather than relying only on
 * :has(), so the whole card highlight doesn't depend on that CSS
 * feature landing correctly in every browser in front of patients.
 */
.dotor-option-card:has( .dotor-strength-selection__radio:checked ),
.dotor-option-card.dotor-option-card--selected {
	box-shadow: 0 0 0 2px #15f5ba;
	background: #f2fffb;
}

.dotor-option-card .form-row {
	margin: 0;
}

.dotor-option-card__label {
	font-weight: 600;
	flex: 1 1 auto;
}

.dotor-option-card__price {
	white-space: nowrap;
	font-weight: 600;
}

.dotor-option-card__badge {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	background: #fbe4e2;
	color: #b32d2e;
	padding: 0.3rem 0.75rem;
	border-radius: 999px;
	white-space: nowrap;
}

.dotor-option-card--disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.dotor-option-card--disabled .dotor-option-card__label,
.dotor-option-card--disabled .dotor-option-card__price {
	color: #999;
}

.dotor-start-consultation {
	margin-bottom: 1rem;
}

.dotor-admin-warning {
	color: #b32d2e;
	font-style: italic;
}

.dotor-strength-selection__empty {
	font-style: italic;
}
