/* =====================================================================
   Rankolab Booster — Modern UX layer + Free SEO Tools styling
   Harmonised with rankolab-theme dark neon / glassmorphism tokens.
   ===================================================================== */

:root {
	--rkb-bg-deep: #050810;
	--rkb-bg-card: rgba(15, 20, 35, 0.62);
	--rkb-bg-card-2: rgba(20, 27, 48, 0.7);
	--rkb-border: rgba(255, 255, 255, 0.09);
	--rkb-border-2: rgba(255, 255, 255, 0.14);
	--rkb-text: #ffffff;
	--rkb-text-dim: #a1a9b8;
	--rkb-neon-blue: #00d2ff;
	--rkb-blue: #1e6ff5;
	--rkb-green: #3aedb2;
	--rkb-purple: #7b3fff;
	--rkb-gold: #f5c842;
	--rkb-red: #ff5a5a;
	--rkb-orange: #ff9f1a;
	--rkb-radius: 18px;
	--rkb-radius-sm: 12px;
	--rkb-shadow: 0 18px 50px -18px rgba(0, 0, 0, 0.65);
	--rkb-glow: 0 0 0 1px rgba(0, 210, 255, 0.18), 0 12px 40px -12px rgba(0, 210, 255, 0.35);
	--rkb-font: 'Plus Jakarta Sans', 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ---------------------------------------------------------------------
   1. Site-wide responsive / mobile safety fixes (conservative)
   --------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img, svg, video, canvas, iframe { max-width: 100%; height: auto; }
* { min-width: 0; }

/* Prevent fixed-width elements from forcing horizontal scroll on phones */
@media (max-width: 782px) {
	.elementor-section, .elementor-container, .e-con, .e-con-inner { max-width: 100% !important; }
	table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	/* Larger tap targets for nav + buttons */
	a, button, .button, input[type="submit"] { touch-action: manipulation; }
	.menu-item a, .wp-block-navigation-item a { padding-block: 10px; }
	/* Fluid headings so long words never overflow */
	h1 { font-size: clamp(1.7rem, 7vw, 2.6rem); line-height: 1.18; word-break: break-word; }
	h2 { font-size: clamp(1.4rem, 5.5vw, 2rem); line-height: 1.22; }
	h3 { font-size: clamp(1.15rem, 4.5vw, 1.5rem); }
	/* Tame oversized hero paddings that crush phones */
	.rkb-fluid-pad { padding-left: 18px !important; padding-right: 18px !important; }
}

/* ---------------------------------------------------------------------
   2. Tool container
   --------------------------------------------------------------------- */
.rkb-tool {
	font-family: var(--rkb-font);
	color: var(--rkb-text);
	max-width: 920px;
	margin: 32px auto;
	padding: clamp(20px, 4vw, 38px);
	background:
		radial-gradient(120% 120% at 0% 0%, rgba(0, 210, 255, 0.07), transparent 45%),
		radial-gradient(120% 120% at 100% 0%, rgba(123, 63, 255, 0.08), transparent 45%),
		var(--rkb-bg-card);
	border: 1px solid var(--rkb-border);
	border-radius: var(--rkb-radius);
	box-shadow: var(--rkb-shadow);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	position: relative;
	overflow: hidden;
}
.rkb-tool::before {
	content: "";
	position: absolute; inset: 0 0 auto 0; height: 2px;
	background: linear-gradient(90deg, var(--rkb-neon-blue), var(--rkb-purple), var(--rkb-green));
	opacity: 0.9;
}
.rkb-tool__head { margin-bottom: 22px; }
.rkb-tool__title {
	font-family: 'Outfit', var(--rkb-font);
	font-size: clamp(1.5rem, 3.4vw, 2.1rem);
	font-weight: 800; line-height: 1.15; margin: 0 0 8px;
	background: linear-gradient(120deg, #fff 0%, #b9e8ff 60%, #d7c4ff 100%);
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.rkb-tool__sub { color: var(--rkb-text-dim); font-size: 1rem; line-height: 1.55; margin: 0; max-width: 60ch; }

/* ---------------------------------------------------------------------
   3. Form
   --------------------------------------------------------------------- */
.rkb-form { display: grid; gap: 14px; }
.rkb-field { display: grid; gap: 6px; }
.rkb-field__label { font-size: 0.82rem; font-weight: 600; color: var(--rkb-text-dim); letter-spacing: 0.02em; }
.rkb-input {
	width: 100%;
	font-family: inherit; font-size: 1rem; color: var(--rkb-text);
	background: rgba(5, 8, 16, 0.55);
	border: 1px solid var(--rkb-border-2);
	border-radius: var(--rkb-radius-sm);
	padding: 14px 16px;
	transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
	-webkit-appearance: none; appearance: none;
}
.rkb-input::placeholder { color: rgba(161, 169, 184, 0.6); }
.rkb-input:focus {
	outline: none;
	border-color: var(--rkb-neon-blue);
	box-shadow: 0 0 0 4px rgba(0, 210, 255, 0.16);
	background: rgba(5, 8, 16, 0.8);
}
.rkb-textarea { resize: vertical; min-height: 96px; line-height: 1.5; }

/* ---------------------------------------------------------------------
   4. Buttons
   --------------------------------------------------------------------- */
.rkb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	font-family: 'Outfit', var(--rkb-font); font-weight: 700; font-size: 1rem;
	border: none; border-radius: var(--rkb-radius-sm); cursor: pointer;
	padding: 14px 26px; min-height: 50px; text-decoration: none;
	transition: transform 0.16s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.rkb-btn--primary {
	color: #021018;
	background: linear-gradient(120deg, var(--rkb-neon-blue), #4ad6ff 40%, var(--rkb-green));
	box-shadow: 0 10px 30px -8px rgba(0, 210, 255, 0.55);
}
.rkb-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 16px 40px -10px rgba(0, 210, 255, 0.7); filter: brightness(1.05); }
.rkb-btn--primary:active { transform: translateY(0); }
.rkb-btn--primary[disabled] { opacity: 0.65; cursor: progress; }
.rkb-btn--ghost {
	color: var(--rkb-text);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--rkb-border-2);
}
.rkb-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); transform: translateY(-2px); }
.rkb-spinner {
	width: 18px; height: 18px; border-radius: 50%;
	border: 2px solid rgba(2, 16, 24, 0.4); border-top-color: #021018;
	animation: rkb-spin 0.7s linear infinite;
}
@keyframes rkb-spin { to { transform: rotate(360deg); } }

/* ---------------------------------------------------------------------
   5. Results
   --------------------------------------------------------------------- */
.rkb-error {
	margin-top: 16px; padding: 14px 16px; border-radius: var(--rkb-radius-sm);
	background: rgba(255, 90, 90, 0.12); border: 1px solid rgba(255, 90, 90, 0.4);
	color: #ffd2d2; font-size: 0.95rem;
}
.rkb-result { margin-top: 26px; animation: rkb-fade 0.4s ease; }
@keyframes rkb-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.rkb-report__hero { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-bottom: 22px; }
.rkb-score { width: 116px; height: 116px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto; }
.rkb-score__inner {
	width: 88px; height: 88px; border-radius: 50%; background: var(--rkb-bg-deep);
	display: grid; place-items: center; line-height: 1;
}
.rkb-score__num { font-family: 'Outfit'; font-size: 2rem; font-weight: 800; }
.rkb-score__lbl { font-size: 0.7rem; color: var(--rkb-text-dim); }
.rkb-report__meta { flex: 1 1 240px; }
.rkb-grade {
	display: inline-block; font-family: 'Outfit'; font-weight: 800; font-size: 1.15rem;
	padding: 4px 14px; border-radius: 999px; margin-bottom: 10px;
	background: rgba(255, 255, 255, 0.07); border: 1px solid var(--rkb-border-2);
}
.rkb-grade--a { color: var(--rkb-green); } .rkb-grade--b { color: #9be8c7; }
.rkb-grade--c { color: var(--rkb-gold); } .rkb-grade--d { color: var(--rkb-orange); } .rkb-grade--f { color: var(--rkb-red); }
.rkb-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.rkb-pill { font-size: 0.8rem; padding: 5px 12px; border-radius: 999px; background: rgba(255,255,255,0.06); border: 1px solid var(--rkb-border); color: var(--rkb-text-dim); }
.rkb-pill--ok { color: var(--rkb-green); } .rkb-pill--warn { color: var(--rkb-gold); } .rkb-pill--fail { color: var(--rkb-red); }
.rkb-muted { color: var(--rkb-text-dim); font-size: 0.86rem; }

.rkb-cats { display: grid; gap: 12px; margin: 18px 0 24px; }
.rkb-cat__top { display: flex; justify-content: space-between; font-size: 0.85rem; margin-bottom: 5px; color: var(--rkb-text-dim); }
.rkb-cat__track { height: 9px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.rkb-cat__track i { display: block; height: 100%; border-radius: 999px; transition: width 0.8s cubic-bezier(.2,.7,.2,1); }

.rkb-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rkb-check {
	display: flex; gap: 12px; align-items: flex-start;
	padding: 13px 15px; border-radius: var(--rkb-radius-sm);
	background: var(--rkb-bg-card-2); border: 1px solid var(--rkb-border);
}
.rkb-check--fail { border-color: rgba(255,90,90,0.3); }
.rkb-check--warn { border-color: rgba(245,200,66,0.25); }
.rkb-check__name { font-weight: 700; font-size: 0.95rem; }
.rkb-check__msg { color: var(--rkb-text-dim); font-size: 0.88rem; margin-top: 2px; }
.rkb-check__fix { color: #bfe9ff; font-size: 0.85rem; margin-top: 5px; }
.rkb-tag { font-size: 0.68rem; font-weight: 600; color: var(--rkb-text-dim); background: rgba(255,255,255,0.06); padding: 2px 8px; border-radius: 999px; margin-left: 6px; }
.rkb-b { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 0.8rem; font-weight: 800; }
.rkb-b--pass { background: rgba(58,237,178,0.15); color: var(--rkb-green); }
.rkb-b--warn { background: rgba(245,200,66,0.15); color: var(--rkb-gold); }
.rkb-b--fail { background: rgba(255,90,90,0.15); color: var(--rkb-red); }

.rkb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; margin: 18px 0; }
.rkb-stat { text-align: center; padding: 16px 10px; border-radius: var(--rkb-radius-sm); background: var(--rkb-bg-card-2); border: 1px solid var(--rkb-border); }
.rkb-stat b { display: block; font-family: 'Outfit'; font-size: 1.6rem; font-weight: 800; color: var(--rkb-neon-blue); }
.rkb-stat span { font-size: 0.78rem; color: var(--rkb-text-dim); }

.rkb-ok-note { margin: 14px 0 0; padding: 12px 14px; border-radius: var(--rkb-radius-sm); background: rgba(58,237,178,0.08); border: 1px solid rgba(58,237,178,0.25); color: #cdffe9; font-size: 0.9rem; }

.rkb-h4 { font-family: 'Outfit'; font-size: 1rem; margin: 20px 0 8px; }
.rkb-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; margin-top: 8px; }
.rkb-table th, .rkb-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--rkb-border); vertical-align: top; }
.rkb-table thead th { color: var(--rkb-text-dim); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; }
.rkb-table th { font-weight: 600; }
.rkb-table--cmp td { text-align: center; font-variant-numeric: tabular-nums; }
.rkb-win-a td:nth-child(2) { color: var(--rkb-green); font-weight: 700; }
.rkb-win-b td:nth-child(3) { color: var(--rkb-green); font-weight: 700; }

.rkb-serp {
	background: #fff; color: #202124; border-radius: 12px; padding: 16px 18px; margin: 6px 0 16px;
	font-family: arial, sans-serif; box-shadow: var(--rkb-shadow);
}
.rkb-serp__title { color: #1a0dab; font-size: 1.25rem; line-height: 1.3; }
.rkb-serp__url { color: #006621; font-size: 0.85rem; margin: 2px 0 4px; }
.rkb-serp__desc { color: #4d5156; font-size: 0.9rem; line-height: 1.45; }

.rkb-social { margin-bottom: 16px; }
.rkb-social__card { max-width: 524px; border: 1px solid #dadde1; border-radius: 10px; overflow: hidden; background: #fff; color: #1c1e21; }
.rkb-social__img { height: 274px; background-size: cover; background-position: center; background-color: #e4e6eb; }
.rkb-social__img--empty { display: grid; place-items: center; color: #8a8d91; font-size: 0.9rem; }
.rkb-social__body { padding: 12px 14px; }
.rkb-social__host { font-size: 0.72rem; text-transform: uppercase; color: #606770; letter-spacing: 0.02em; }
.rkb-social__title { font-weight: 700; font-size: 1.05rem; margin: 3px 0; color: #1c1e21; }
.rkb-social__desc { font-size: 0.86rem; color: #606770; }

.rkb-code { margin: 12px 0; border-radius: var(--rkb-radius-sm); overflow: hidden; border: 1px solid var(--rkb-border-2); }
.rkb-code__bar { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: rgba(255,255,255,0.05); font-size: 0.8rem; color: var(--rkb-text-dim); }
.rkb-copy { background: var(--rkb-neon-blue); color: #021018; border: none; border-radius: 8px; padding: 5px 12px; font-weight: 700; cursor: pointer; font-size: 0.8rem; }
.rkb-code pre { margin: 0; padding: 14px 16px; background: #04070e; overflow-x: auto; }
.rkb-code code { font-family: 'SFMono-Regular', Consolas, monospace; font-size: 0.82rem; color: #c7f0ff; white-space: pre; }
.rkb-urls { list-style: none; margin: 10px 0 0; padding: 0; max-height: 240px; overflow-y: auto; display: grid; gap: 4px; }
.rkb-urls li { font-size: 0.82rem; color: var(--rkb-text-dim); padding: 6px 10px; background: var(--rkb-bg-card-2); border-radius: 8px; word-break: break-all; }

.rkb-cta { margin-top: 26px; padding: 22px; border-radius: var(--rkb-radius); text-align: center;
	background: linear-gradient(120deg, rgba(0,210,255,0.1), rgba(123,63,255,0.12));
	border: 1px solid var(--rkb-border-2); }
.rkb-cta p { margin: 0 0 12px; color: var(--rkb-text); font-weight: 600; }
.rkb-lead__title { font-size: 1.05rem; }
.rkb-lead__form { display: flex; gap: 10px; max-width: 480px; margin: 0 auto 4px; flex-wrap: wrap; }
.rkb-lead__form .rkb-input { flex: 1 1 200px; text-align: left; }
.rkb-lead__form .rkb-btn { flex: 0 0 auto; }
.rkb-lead__msg { color: var(--rkb-green); font-weight: 600; margin: 8px 0 0; }
.rkb-cta__pro { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--rkb-border); }
.rkb-cta__pro p { font-size: 0.92rem; color: var(--rkb-text-dim); font-weight: 500; }

/* ---------------------------------------------------------------------
   6. Mobile tweaks for the tools
   --------------------------------------------------------------------- */
@media (max-width: 600px) {
	.rkb-tool { margin: 20px 12px; border-radius: 16px; }
	.rkb-report__hero { gap: 16px; }
	.rkb-score { width: 96px; height: 96px; }
	.rkb-score__inner { width: 72px; height: 72px; }
	.rkb-score__num { font-size: 1.6rem; }
	.rkb-btn { width: 100%; }
	.rkb-social__img { height: 200px; }
}
