/* HQ Pricing Table — Styles v2.1 (multi-plan grid) */

/* ── Sección contenedora — centra todo en la página */
.hq-pricing-section {
	width:      100%;
	box-sizing: border-box;
	padding-left:  16px;
	padding-right: 16px;
}

/* ── Grid de planes — siempre centrado */
.hq-pricing-grid {
	display:               grid;
	gap:                   28px;
	width:                 100%;
	max-width:             1200px;
	margin:                0 auto;       /* centra el grid dentro de la sección */
	align-items:           start;        /* alinea cards por arriba para que highlighted sobresalga */
}

/* ── Tarjeta individual */
.hq-pricing-card {
	position:   relative;
	width:      100%;
	padding:    40px 32px;
	border:     2px solid transparent;
	box-shadow: 0 4px 24px rgba(0,0,0,0.07);
	box-sizing: border-box;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display:    flex;
	flex-direction: column;
}

.hq-pricing-card.hq-pricing-highlighted {
	box-shadow: 0 8px 40px rgba(0,0,0,0.15);
	transform:  translateY(-8px);
}

/* Badge */
.hq-pricing-badge {
	position:       absolute;
	top:            -14px;
	left:           50%;
	transform:      translateX(-50%);
	padding:        4px 18px;
	border-radius:  20px;
	font-size:      11px;
	font-weight:    700;
	color:          #fff;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	white-space:    nowrap;
}

/* Header */
.hq-pricing-header {
	text-align:     center;
	margin-bottom:  24px;
	padding-bottom: 20px;
	border-bottom:  1px solid rgba(0,0,0,0.08);
}

.hq-pricing-plan {
	margin:         0 0 14px;
	font-size:      1.2em;
	font-weight:    700;
	letter-spacing: -0.01em;
}

.hq-pricing-price-row {
	display:         flex;
	align-items:     flex-end;
	justify-content: center;
	gap:             3px;
	line-height:     1;
}

.hq-pricing-currency {
	font-size:   1.3em;
	font-weight: 700;
	align-self:  flex-start;
	padding-top: 5px;
}

.hq-pricing-amount,
.hq-price-inline {
	font-size:      3em;
	font-weight:    800;
	letter-spacing: -0.03em;
	line-height:    1;
}

/* inline price input in editor */
.hq-price-inline {
	border:         none;
	background:     transparent;
	width:          3ch;
	min-width:      2ch;
	max-width:      6ch;
	color:          inherit;
	font-family:    inherit;
	text-align:     center;
	padding:        0;
}
.hq-price-inline:focus { outline: none; border-bottom: 1px dashed currentColor; }

.hq-pricing-period {
	font-size:    0.85em;
	opacity:      0.6;
	padding-bottom: 5px;
}

/* Features */
.hq-pricing-features {
	list-style: none;
	margin:     0 0 24px;
	padding:    0;
	display:    flex;
	flex-direction: column;
	gap:        11px;
	flex:       1;            /* empuja el CTA al fondo de todas las cards */
}

.hq-pricing-feature {
	display:     flex;
	align-items: center;
	gap:         9px;
	font-size:   0.92em;
}

.hq-pricing-check {
	display:     flex;
	align-items: center;
	flex-shrink: 0;
}

/* CTA */
.hq-pricing-cta { text-align: center; margin-top: auto; }

.hq-pricing-btn {
	display:         inline-block;
	width:           100%;
	padding:         13px 20px;
	border-radius:   8px;
	font-weight:     700;
	font-size:       0.95em;
	text-align:      center;
	text-decoration: none;
	letter-spacing:  0.02em;
	transition:      opacity 0.2s ease, transform 0.2s ease;
}

.hq-pricing-btn:hover { opacity: 0.88; transform: translateY(-2px); text-decoration: none; }
.hq-pricing-btn:focus,
.hq-pricing-btn:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }

/* ── Editor helpers */
.hq-feature-input {
	flex:             1;
	border:           none;
	background:       transparent;
	font-size:        inherit;
	color:            inherit;
	padding:          2px 4px;
	border-bottom:    1px dashed rgba(0,0,0,0.2);
}
.hq-feature-input:focus { outline: none; border-bottom-color: #007cba; }

.hq-feature-remove { opacity: 0.4; flex-shrink: 0; }
.hq-feature-remove:hover { opacity: 1; }

.hq-feature-add {
	width:           100%;
	justify-content: center;
	margin-bottom:   16px;
	opacity:         0.6;
}

.hq-plan-remove {
	margin-top: 12px;
	width:      100%;
	justify-content: center;
}

.hq-plan-add {
	grid-column: 1 / -1;          /* ocupa todo el ancho del grid */
	width:       fit-content;
	margin:      8px auto 0;
	display:     block;
}

.hq-color-row {
	display:       flex;
	align-items:   center;
	gap:           10px;
	margin-bottom: 12px;
}
.hq-color-label { flex: 1; font-size: 12px; font-weight: 500; }
.hq-color-row input[type="color"] {
	width: 40px; height: 32px; padding: 2px;
	border: 1px solid #ccc; border-radius: 4px; cursor: pointer; background: none;
}

/* ── Responsive */
@media (max-width: 900px) {
	.hq-pricing-grid { grid-template-columns: repeat(2, 1fr) !important; }
	.hq-pricing-card.hq-pricing-highlighted { transform: none; }
}

@media (max-width: 560px) {
	.hq-pricing-grid  { grid-template-columns: 1fr !important; }
	.hq-pricing-card  { padding: 32px 24px; }
	.hq-pricing-amount { font-size: 2.5em; }
}
