/* =============================================================
   Conversion-Tool.com — 2026 Redesign (master mockup A+C)
   Loaded AFTER ColorMag + Bootstrap 4 + plugin ct.css.
   ============================================================= */

:root {
	--ctc-bg: #f6f8fa;
	--ctc-surface: #ffffff;
	--ctc-border: #e3e8ee;
	--ctc-text: #1a2b3c;
	--ctc-muted: #5b6b7b;
	--ctc-accent: #2563eb;
	--ctc-accent-h: #1d4ed8;
	--ctc-accent-soft: #eef3fd;
	--ctc-radius: 12px;
	--ctc-font: 'Segoe UI', Inter, system-ui, -apple-system, sans-serif;
}

/* ---------- Base ---------- */
body {
	background: var(--ctc-bg) !important;
	color: var(--ctc-text);
	font-family: var(--ctc-font);
	line-height: 1.55;
}
a { color: var(--ctc-accent); }
a:hover { color: var(--ctc-accent-h); }

#cm-content.cm-content { background: var(--ctc-bg); padding-top: 0; }
.inner-wrap { max-width: 1200px; }

/* ---------- Header ---------- */
#cm-masthead {
	background: var(--ctc-surface);
	border-bottom: 1px solid var(--ctc-border);
	box-shadow: none;
	position: sticky; /* mockup: header sticks to top (sidebar sky ad offsets to top:76px) */
	top: 0;
	z-index: 100;
}
#cm-masthead a { color: var(--ctc-text); }

/* Compact branding (site title is a <p> via child logo.php override) */
#cm-masthead .cm-main-header { padding: 10px 0; }
.cm-site-title {
	font-size: 24px !important;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 !important;
	white-space: nowrap;
}
.cm-site-title a { color: var(--ctc-text) !important; }
/* Mockup header is a single-line logo — no tagline under the title. */
.cm-site-description { display: none !important; }

/* Menu: white surface, dark links — kill ALL of ColorMag's blue menu
   backgrounds (it paints ul/li/current-item with the primary color) */
#cm-masthead .cm-header-bottom-row,
#cm-masthead .cm-header-bottom-row .cm-container,
#cm-primary-nav,
#cm-primary-nav ul,
#cm-primary-nav li,
#cm-primary-nav .menu,
#cm-primary-nav .menu > li {
	background: transparent !important;
	border: none !important;
}
#cm-masthead .cm-main-header { border-bottom: none !important; }
#cm-masthead { border-bottom: 1px solid var(--ctc-border) !important; }
#cm-primary-nav a,
#cm-primary-nav .menu a {
	color: var(--ctc-text) !important;
	background: transparent !important;
	font-size: 14.5px;
	font-weight: 500;
	text-transform: none !important;
	letter-spacing: 0;
	border-radius: 8px;
	padding: 9px 14px;
}
#cm-primary-nav a:hover,
#cm-primary-nav li:hover > a,
#cm-primary-nav .current-menu-item > a,
#cm-primary-nav .current_page_item > a {
	background: var(--ctc-accent-soft) !important;
	color: var(--ctc-accent) !important;
}

/* Keep the 6 categories on ONE row. ColorMag gives each top-level <li> its own
   10px/16px padding, which stacks with the link padding and overflowed the
   centre column (PDF + Utilities wrapped to a hidden 2nd row). Drop the li
   padding and disable wrapping; the link padding still forms the hover pill. */
#cm-masthead #cm-primary-menu { flex-wrap: nowrap; gap: 2px; }
#cm-masthead #cm-primary-menu > li { padding: 0 !important; }

/* Mobile menu (hamburger) toggle: ColorMag colours the icon white, which is
   invisible on our white header. Make it dark so the menu is reachable. */
.cm-menu-toggle,
.cm-menu-toggle svg,
.cm-menu-toggle .cm-icon {
	color: var(--ctc-text) !important;
	fill: var(--ctc-text) !important;
}

/* Mobile slide-out menu panel: ColorMag's default is dark (#27272a), but our
   header links are dark text → invisible. Recolour to the light design system. */
#cm-mobile-nav {
	background: var(--ctc-surface) !important;
	border: 1px solid var(--ctc-border);
	border-radius: 10px;
	box-shadow: 0 10px 30px rgba(26,43,60,.12);
	z-index: 99;
}
#cm-mobile-nav a { color: var(--ctc-text) !important; }
/* ColorMag paints the dark panel colour on each <li> and the mobile header row,
   not the nav — clear them so the white panel shows. */
#cm-mobile-nav li,
#cm-mobile-nav .menu-item,
#cm-mobile-nav .cm-mobile-header-row {
	background: transparent !important;
	border-color: var(--ctc-border) !important;
}
#cm-mobile-nav .current-menu-item > a,
#cm-mobile-nav a:hover {
	background: var(--ctc-accent-soft) !important;
	color: var(--ctc-accent) !important;
}
/* Submenu expand (+/arrow) toggles inside the mobile menu */
#cm-mobile-nav .cm-submenu-toggle,
#cm-mobile-nav .cm-submenu-toggle svg,
#cm-mobile-nav .cm-submenu-toggle .cm-icon {
	color: var(--ctc-text) !important;
	fill: var(--ctc-text) !important;
}

/* One-row header alignment */
#cm-masthead .cm-main-header { padding: 8px 0; }

/* Search rendered as an always-visible pill (header_search_type = search-box).
   The submit button's icon font is no longer loaded, so we draw a magnifier
   glyph via ::before and flatten the input into the pill. */
#cm-masthead .cm-search-box .search-form { margin: 0; }
#cm-masthead .cm-search-box .search-wrap {
	display: flex;
	align-items: center;
	background: var(--ctc-bg);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	overflow: hidden;
	min-width: 240px;
	padding: 0 12px;
}
#cm-masthead .cm-search-box input.s {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 9px 4px;
	font-size: 14px;
	flex: 1;
	min-width: 0;
	color: var(--ctc-text);
	order: 1; /* input sits right of the magnifier */
}
#cm-masthead .cm-search-box input.s::placeholder { color: var(--ctc-muted); opacity: 1; }
/* Magnifier as a leading icon (mockup: "🔍 Search 100+ tools…"). The submit
   button is reordered to the left and styled as the icon; Enter also submits. */
#cm-masthead .cm-search-box .search-icon,
#cm-masthead .cm-search-box .search-wrap button,
#cm-masthead .cm-search-box button[type="submit"] {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	padding: 0 6px 0 0;
	margin: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	order: 0; /* magnifier first */
}
/* Crisp, clearly-visible magnifier (the emoji rendered too faint with emoji
   scripts disabled). SVG mask so we control the colour. */
#cm-masthead .cm-search-box .search-icon::before {
	content: "";
	display: block;
	width: 17px;
	height: 17px;
	background-color: #475569;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* No featured icon images on pages (legacy 256px tool icons) */
body.page .cm-featured-image { display: none; }
/* Dropdown: !important needed because the menu reset above sets
   `#cm-primary-nav ul { background:transparent; border:none }` with !important,
   which otherwise leaves the submenu see-through over page content. */
#cm-primary-nav .sub-menu {
	background: var(--ctc-surface) !important;
	border: 1px solid var(--ctc-border) !important;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(26,43,60,.10);
	min-width: 240px;
	width: max-content;     /* grow to fit the longest converter label … */
	max-width: 360px;       /* … but stay reasonable */
	padding: 6px 0;
	overflow: visible;      /* must NOT clip nested flyouts (e.g. Hash generators) */
}
/* Tight dropdown rows: ColorMag stacks li padding (10/16) + a padding (9/14)
   + a 29px line-height → 67px tall items. Flatten to a single compact row. */
#cm-primary-nav .sub-menu li { padding: 0 !important; margin: 0 !important; }
#cm-primary-nav .sub-menu a {
	color: var(--ctc-text) !important;
	display: block;
	padding: 7px 16px !important;
	line-height: 1.35 !important;
	border-radius: 0 !important;
	white-space: nowrap;
}
/* Nested flyouts (e.g. Utilities → Hash generators): the right-most categories
   open their flyout to the LEFT so it doesn't run off-screen, and tall flyouts
   (27 hash tools) scroll instead of overflowing the viewport. */
#cm-primary-menu > li:nth-last-child(-n+2) .sub-menu .sub-menu {
	left: auto;
	right: 100%;
}
#cm-primary-nav .sub-menu .sub-menu {
	max-height: 76vh;
	overflow-y: auto;
}

/* ---------- Breadcrumbs ---------- */
.ctc-breadcrumbs { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.ctc-breadcrumbs-inner { font-size: 13px; color: var(--ctc-muted); margin: 10px 0 4px; }
.ctc-breadcrumbs-inner a { color: var(--ctc-muted); }
.ctc-breadcrumbs-inner a:hover { color: var(--ctc-accent); }

/* ---------- Layout / content cards ---------- */
.cm-row { align-items: flex-start; }
#cm-primary .cm-posts article,
#cm-primary .type-page {
	background: transparent;
	border: none;
	box-shadow: none;
}
/* Page title = H1 (keyword-bearing, exactly one per page) */
.cm-entry-title,
.entry-title {
	font-size: 28px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--ctc-text);
}

/* Generic content card look for plugin output + content blocks */
.cm-entry-content .card,
#cm-primary .card {
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	box-shadow: none;
	margin-bottom: 24px;
}
.card-header {
	background: transparent;
	border-bottom: 1px solid var(--ctc-border);
	font-weight: 700;
	font-size: 17px;
	color: var(--ctc-text);
	border-radius: var(--ctc-radius) var(--ctc-radius) 0 0 !important;
}
.card-body { padding: 24px; }

/* Plugin "How to convert" cards: ct-modern.css paints .card-header with the
   accent colour (.card.bg-success .card-header { background: accent }). The
   master mockup uses a plain white card with a dark heading, so neutralise the
   coloured band. Scoped to #cm-primary to out-specify the plugin rule. */
#cm-primary .card.bg-success,
#cm-primary .card.text-white,
.cm-entry-content .card.bg-success,
.cm-entry-content .card.text-white {
	background: var(--ctc-surface) !important;
	color: var(--ctc-text) !important;
}
#cm-primary .card .card-header,
.cm-entry-content .card .card-header {
	background: transparent !important;
	color: var(--ctc-text) !important;
	border-bottom: none !important;
	padding: 20px 24px 0 !important;
}
#cm-primary .card .card-header h2,
.cm-entry-content .card .card-header h2 {
	color: var(--ctc-text) !important;
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

/* ---------- Forms (plugin uses Bootstrap 4 classes) ---------- */
/* Clear, visible borders on ALL form fields. ColorMag styles input[type=text]
   with a white border (higher specificity than .form-control), so use
   !important + explicit input selectors so text fields aren't borderless. */
.form-control,
input.form-control,
select.form-control,
textarea.form-control,
.ctc-url-input,
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-textarea,
.wpcf7-form-control.wpcf7-number,
#cm-primary input[type="text"],
#cm-primary input[type="search"],
#cm-primary input[type="number"],
#cm-primary input[type="email"],
#cm-primary input[type="tel"],
#cm-primary input[type="url"],
#cm-primary textarea {
	border: 1px solid #cbd5e1 !important;
	border-radius: 10px !important;
	padding: 10px 14px;
	font-size: 14px;
	color: var(--ctc-text);
	background: #fff !important;
}
.form-control:focus {
	border-color: var(--ctc-accent);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
select.form-control { height: auto; }

/* Small uppercase labels ONLY for option fields — not checkboxes/global */
.ctc-field label, .col-form-label {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--ctc-muted);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.ctc-check label {
	text-transform: none;
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--ctc-text);
}

/* Buttons — primary action */
.btn-primary,
.ct-submission-button,
input[type="submit"],
button[type="submit"] {
	background: var(--ctc-accent) !important;
	border-color: var(--ctc-accent) !important;
	color: #fff !important;
	font-weight: 600;
	font-size: 15px;
	padding: 12px 26px;
	border-radius: 10px;
	transition: background 0.15s ease;
}
.btn-primary:hover,
.ct-submission-button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
	background: var(--ctc-accent-h) !important;
	border-color: var(--ctc-accent-h) !important;
}

/* Tool form card (plugin .my-form wraps the whole converter form;
   the dashed drop zone itself is .ctc-drop, styled in the plugin's
   ct-modern.css and refined here) */
.my-form {
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	padding: 24px;
	margin-bottom: 24px;
}
/* Drop zone (mockup): dashed box, type icon + upload glyph, prominent button,
   "or drag & drop here · max 500 MB" subtext. The file input is a transparent
   overlay so a click anywhere — or a native file drop — opens/sets the picker. */
.ctc-drop {
	position: relative;
	border: 2px dashed #b9c7e8 !important;
	background: #f3f7ff !important;
	border-radius: var(--ctc-radius);
	padding: 40px 20px;
	text-align: center;
	margin-bottom: 18px;
}
.ctc-drop:hover { border-color: var(--ctc-accent) !important; }
.ctc-drop .ctc-file-input {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}
.ctc-drop-inner {
	position: relative;
	z-index: 1;
	pointer-events: none;
}
.ctc-drop-icons { font-size: 40px; line-height: 1; margin-bottom: 16px; }
.ctc-drop-up { margin-left: 6px; }
.ctc-drop-btn {
	display: inline-block;
	background: var(--ctc-accent);
	color: #fff;
	font-weight: 600;
	font-size: 16px;
	padding: 13px 30px;
	border-radius: 10px;
	transition: background 0.15s ease;
}
.ctc-drop:hover .ctc-drop-btn { background: var(--ctc-accent-h); }
.ctc-drop-sub { color: var(--ctc-muted); font-size: 14px; margin-top: 14px; }
/* While dragging a file over the zone */
.ctc-drop.ctc-drop--dragover { border-color: var(--ctc-accent) !important; background: #eef4ff !important; }
/* After a file is chosen (click or drop): green "selected" state + filename in the button */
.ctc-drop.ctc-drop--has-file { border-style: solid !important; border-color: #16a34a !important; background: #f0fdf4 !important; }
.ctc-drop--has-file .ctc-drop-btn { background: #16a34a; max-width: 100%; overflow-wrap: anywhere; }
.ctc-drop--has-file:hover .ctc-drop-btn { background: #15803d; }
.ctc-drop--has-file .ctc-drop-up { display: none; }

/* QR code on the download page (scan to open this page on a phone) */
.ctc-qr { text-align: center; margin: 20px 0 4px; }
.ctc-qr img { width: 200px; height: 200px; border: 1px solid var(--ctc-border); border-radius: 12px; padding: 10px; background: #fff; box-sizing: border-box; }
.ctc-qr-cap { color: var(--ctc-muted); font-size: 13px; margin-top: 8px; }

/* ---------- Download / result page card ---------- */
.ctc-download-card {
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	padding: 26px 30px;
	margin: 8px 0 24px;
}
.ctc-download-card .alert-success {
	background: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	color: #166534 !important;
	border-radius: 10px;
	padding: 13px 16px 13px 44px;
	font-weight: 600;
	margin: 0 0 18px;
	position: relative;
}
.ctc-download-card .alert-success::before {
	content: "\2714"; /* ✔ */
	position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
	color: #16a34a; font-weight: 700;
}
/* Download/action links become buttons; app-store badge links (with <img>) stay plain */
.ctc-download-card ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.ctc-download-card ul li { margin: 0; }
.ctc-download-card ul li a:not(:has(img)) {
	display: block; text-align: center; text-decoration: none;
	background: var(--ctc-accent); color: #fff; font-weight: 600;
	padding: 13px 20px; border-radius: 10px; transition: background .15s ease;
}
.ctc-download-card ul li a:not(:has(img)):hover { background: var(--ctc-accent-h); }
.ctc-download-card ul li:has(img) { text-align: center; margin-top: 6px; }
.ctc-download-card ul li a:has(img) { display: inline-block; }
/* Cloud-save row (Dropbox / OneDrive / Google Drive) centered */
.ctc-download-card .ctc-cloud-save {
	display: flex; flex-wrap: wrap; gap: 12px;
	justify-content: center; align-items: center;
	margin: 16px 0 4px;
}

/* Multi-file inputs (pdfmerger / hdrmerger): numbered upload slots stacked as
   clean bordered rows with a styled "Choose file" button — replaces the row of
   cramped native file inputs. Names/ids unchanged (JS contract: localfile[]). */
.ctc-multifile {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 8px 0 16px;
}
.ctc-multifile-row {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #f3f7ff;
	border: 1px solid var(--ctc-border);
	border-radius: 10px;
	padding: 10px 14px;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.ctc-multifile-row:hover { border-color: var(--ctc-accent); background: #eef4ff; }
.ctc-multifile-num {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--ctc-accent);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}
#cm-primary input.ctc-multifile-input {
	flex: 1 1 auto;
	min-width: 0;
	max-width: none !important;
	width: auto !important;
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 14px;
	color: var(--ctc-text);
	cursor: pointer;
}
#cm-primary input.ctc-multifile-input::file-selector-button {
	background: var(--ctc-accent);
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	border: none;
	border-radius: 8px;
	padding: 9px 18px;
	margin-right: 14px;
	cursor: pointer;
	transition: background 0.15s ease;
}
#cm-primary input.ctc-multifile-input:hover::file-selector-button { background: var(--ctc-accent-h); }

/* Progress bar */
.progress { border-radius: 8px; height: 14px; background: var(--ctc-accent-soft); }
.progress-bar { background: var(--ctc-accent); }

/* Download list */
.list-group-item { border-color: var(--ctc-border); font-size: 14.5px; }

/* ---------- Typography for long-form SEO content ---------- */
.cm-entry-content h2 { font-size: 21px; font-weight: 700; margin: 26px 0 10px; }
.cm-entry-content h3 { font-size: 17px; font-weight: 700; margin: 20px 0 8px; }
.cm-entry-content p, .cm-entry-content li { font-size: 15.5px; color: #33455a; }
.cm-entry-content ol, .cm-entry-content ul { padding-left: 22px; }

/* FAQ blocks (paste <details> into content; styled automatically) */
.cm-entry-content details {
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	padding: 13px 16px;
	margin-bottom: 10px;
}
.cm-entry-content summary { font-weight: 600; cursor: pointer; font-size: 15px; }
.cm-entry-content details p { margin: 10px 0 0; color: var(--ctc-muted); font-size: 14.5px; }

/* Related-tools grid (use <div class="ctc-tools-grid"> in content/widgets) */
.ctc-tools-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(195px, 1fr));
	gap: 12px;
	margin: 14px 0 24px;
}
.ctc-tools-grid a {
	display: block;
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: 10px;
	padding: 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ctc-text);
	text-decoration: none;
}
.ctc-tools-grid a small { display: block; font-weight: 400; color: var(--ctc-muted); font-size: 12.5px; }
.ctc-tools-grid a:hover { border-color: var(--ctc-accent); box-shadow: 0 2px 8px rgba(37, 99, 235, 0.12); }

/* ---------- Sidebar ---------- */
#cm-secondary .widget,
.cm-secondary .widget {
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	padding: 18px;
	margin-bottom: 18px;
	box-shadow: none;
}
#cm-secondary .widget-title,
.cm-secondary .widget-title,
.ctc-side-title {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	color: var(--ctc-accent);
	border: none;
	margin-bottom: 10px;
}
#cm-secondary .widget a { font-size: 13.5px; color: var(--ctc-text); }
#cm-secondary .widget a:hover { color: var(--ctc-accent); }

.ctc-sidebar-ads .ctc-side-widget:last-child { position: sticky; top: 76px; }

/* Ad widgets in the rail sit flush (no card chrome) so 300px units fit cleanly.
   The sky ad is the last rail widget and sticks on scroll, per the mockup. */
#cm-secondary .ctc-side-ad,
#cm-secondary > .widget:last-child {
	background: transparent;
	border: none;
	padding: 0;
}
#cm-secondary > .widget:last-child { position: sticky; top: 76px; }

/* ---------- Reserved ad slots (CLS = 0) ---------- */
.ctc-ad {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin: 0 auto;
	width: 100%; /* prevents collapse to 0-width when the unit is empty */
}
/* Dashed placeholder look ONLY when showing the admin label, never around real ads */
.ctc-ad:has(.ctc-ad-label) {
	background: #fafbfc;
	border: 1px dashed #e3e8ee;
	border-radius: 8px;
}
.ctc-ad-label { color: #b0a26b; font-size: 12px; font-weight: 600; letter-spacing: 0.3px; }

.ctc-ad--leaderboard { min-height: 90px; max-width: 728px; }
.ctc-leaderboard-wrap { max-width: 1200px; margin: 18px auto 0; padding: 0 20px; }
.ctc-ad--incontent  { min-height: 280px; max-width: 336px; margin: 26px auto; }
.ctc-ad--inarticle  { min-height: 250px; max-width: 728px; margin: 26px auto; }
.ctc-ad--mrec       { min-height: 250px; width: 300px; }
.ctc-ad--sky        { min-height: 600px; width: 300px; }
.ctc-ad--anchor {
	position: fixed;
	bottom: 0; left: 0; right: 0;
	min-height: 60px;
	z-index: 50;
	border-radius: 0;
	display: none;
	background: #fff;
	border-top: 1px solid var(--ctc-border);
}

/* ---------- Footer ---------- */
#cm-footer, .cm-footer, footer.cm-footer-builder {
	background: #16222e;
	color: #9fb0c0;
	font-size: 13.5px;
}
#cm-footer a, .cm-footer a, footer.cm-footer-builder a { color: #9fb0c0; }
#cm-footer a:hover, .cm-footer a:hover { color: #fff; }
#cm-footer .widget-title, .cm-footer .widget-title { color: #fff; font-size: 14px; }

/* ---------- Mobile ---------- */
@media (max-width: 980px) {
	.ctc-ad--sky, .ctc-ad--mrec, .ctc-sidebar-ads { display: none; }
	.ctc-ad--anchor { display: flex; }
	body { padding-bottom: 64px; } /* room for anchor ad */
	.cm-entry-title, .entry-title { font-size: 23px; }
	.card-body { padding: 16px; }

	/* Responsive safety: keep fixed-width children inside the viewport so the
	   content column doesn't overflow/clip (submit button, ad <ins>, inputs). */
	html, body { overflow-x: hidden; } /* page-level guard only — NOT .cm-row,
	   which also matches the header's mobile row and would clip the menu panel */
	#cm-primary, #cm-primary * { max-width: 100%; }
	/* .cm-posts is a CSS grid; its grid item (the article) defaults to
	   min-width:auto and won't shrink below content, ballooning past the
	   viewport. Let it shrink to the track. */
	#cm-primary .cm-posts, #cm-primary .cm-posts > *,
	#cm-primary article, #cm-primary .cm-entry-summary { min-width: 0; }
	.btn, .btn-lg, .ct-submission-button { width: auto; max-width: 100%; }
	.ctc-urlrow { flex-wrap: wrap; }
	/* AdSense locks its <ins>/iframe to a fixed px width (e.g. 406px on
	   localhost), which stretches the article. Force it to the container width. */
	.ctc-ad, .ctc-leaderboard-wrap { overflow: hidden; }
	.ctc-ad, .ctc-ad ins.adsbygoogle, .adsbygoogle,
	.ctc-ad iframe, #cm-primary iframe, .adsbygoogle iframe { max-width: 100% !important; }
	.ctc-ad ins.adsbygoogle, .ctc-ad iframe, #cm-primary iframe { width: 100% !important; }
}

/* ---------- Kill ColorMag magazine leftovers ---------- */
.cm-related-posts,
.cm-post-views,
.cm-reading-time { display: none; }

/* Legacy 2018-era tool icon images at the top of each converter page —
   hidden until the content pass replaces them. Remove this rule if any
   2018 upload should stay visible. */
.cm-entry-content img[src*="/uploads/2018/"] { display: none; }

/* =============================================================
   Category / archive / search overview pages
   Restyle ColorMag's old blog/search layouts into clean tile cards.
   Archives use .cm-posts; search uses .article-container. Scoped to
   archive + search so single converter pages are untouched.
   ============================================================= */
body.archive .cm-page-header,
body.search .cm-page-header {
	max-width: 1200px;
	margin: 0 auto;
	padding: 6px 20px 0;
}
body.archive .cm-page-header .cm-page-title,
body.archive .cm-page-header h1,
body.search .cm-page-header .cm-page-title,
body.search .cm-page-header h1 {
	font-size: 26px;
	font-weight: 700;
	color: var(--ctc-text);
}
/* Neutralize ColorMag's blue page-title highlight block */
body.archive .cm-page-title span,
body.search .cm-page-title span {
	background: none !important;
	color: var(--ctc-text) !important;
	padding: 0 !important;
}
/* Result grids (archive: .cm-posts, search: .article-container) */
body.archive .cm-posts.cm-layout-2,
body.search .article-container {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
	max-width: 1200px;
	margin: 8px auto 0;
}
body.archive #cm-primary article,
body.search #cm-primary article {
	background: var(--ctc-surface) !important;
	border: 1px solid var(--ctc-border) !important;
	border-radius: var(--ctc-radius);
	padding: 18px 20px !important;
	margin: 0 !important;
	width: auto !important;
	float: none !important;
	box-shadow: none;
	transition: border-color .12s ease, box-shadow .12s ease;
}
body.archive #cm-primary article:hover,
body.search #cm-primary article:hover {
	border-color: var(--ctc-accent) !important;
	box-shadow: 0 2px 10px rgba(37, 99, 235, 0.10);
}
/* ColorMag's style-1 makes the first post full-width; normalize it */
body.archive .cm-posts.cm-layout-2 article:first-child { grid-column: auto !important; }
/* Hide legacy 256px icons + redundant category/meta rows */
body.archive #cm-primary .cm-featured-image,
body.search #cm-primary .cm-featured-image,
body.archive #cm-primary .cm-entry-header-meta,
body.search #cm-primary .cm-entry-header-meta,
body.archive #cm-primary .cm-below-entry-meta,
body.search #cm-primary .cm-below-entry-meta { display: none; }
body.archive #cm-primary .cm-entry-title,
body.search #cm-primary .cm-entry-title { font-size: 16px; line-height: 1.35; margin: 0 0 8px; }
body.archive #cm-primary .cm-entry-title a,
body.search #cm-primary .cm-entry-title a { color: var(--ctc-text); }
body.archive #cm-primary .cm-entry-title a:hover,
body.search #cm-primary .cm-entry-title a:hover { color: var(--ctc-accent); }
body.archive #cm-primary .cm-entry-summary,
body.search #cm-primary .cm-entry-summary,
body.archive #cm-primary .cm-entry-summary p,
body.search #cm-primary .cm-entry-summary p {
	font-size: 13.5px;
	color: var(--ctc-muted);
	margin: 0;
}
body.archive #cm-primary .cm-entry-summary,
body.search #cm-primary .cm-entry-summary {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
body.archive #cm-primary .more-link,
body.archive #cm-primary .cm-read-more,
body.archive #cm-primary .cm-readmore-button,
body.search #cm-primary .more-link,
body.search #cm-primary .cm-read-more,
body.search #cm-primary .cm-readmore-button {
	display: inline-block;
	margin-top: 10px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ctc-accent);
}

/* =============================================================
   Landing / start page (front page)
   ============================================================= */
body.home .cm-entry-header { text-align: center; margin-bottom: 6px; }
body.home .cm-entry-title { font-size: 34px; line-height: 1.2; }
.ctc-hero-lead {
	font-size: 17px;
	color: var(--ctc-muted);
	max-width: 720px;
	margin: 0 auto 6px;
	text-align: center;
}
.ctc-section-title { font-size: 20px; font-weight: 700; margin: 30px 0 14px; }
.ctc-cat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 14px;
}
.ctc-cat-grid a {
	display: block;
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	padding: 20px;
	color: var(--ctc-text);
	text-decoration: none;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.ctc-cat-grid a:hover { border-color: var(--ctc-accent); box-shadow: 0 2px 10px rgba(37, 99, 235, 0.10); }
.ctc-cat-grid .ico { font-size: 28px; display: block; margin-bottom: 8px; line-height: 1; }
.ctc-cat-grid b { display: block; font-size: 16px; margin-bottom: 3px; }
.ctc-cat-grid small { color: var(--ctc-muted); font-size: 13px; }

/* =============================================================
   2026 mockup refinements (top section + FAQ section)
   ============================================================= */

/* ---------- Logo: ⚡ Conversion-Tool (mark orange, suffix accent) ---------- */
.cm-site-title a { display: inline-flex; align-items: baseline; }
.cm-site-title { font-size: 21px !important; }
.ctc-logo-mark { color: #f59e0b; margin-right: 7px; font-size: 0.9em; }
.ctc-logo-suffix { color: var(--ctc-accent); }

/* ---------- Nav: a touch more refined/elegant ---------- */
#cm-primary-nav a, #cm-primary-nav .menu a {
	font-size: 14px;
	font-weight: 500;
	padding: 8px 13px !important;
}

/* ---------- Breadcrumb: left-aligned with the content (it's a flex item in
   .site, so margin:auto was centering it). Full-width outer, centered inner. -- */
.ctc-breadcrumbs {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	align-self: stretch;
}
.ctc-breadcrumbs-inner {
	max-width: 1200px;
	margin: 14px auto 2px;
	padding: 0 20px;
	font-size: 12.5px;
	color: var(--ctc-muted);
	text-align: left;
}

/* ---------- Byline under the H1 (rating + free) ---------- */
.ctc-byline {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 14px;
	margin: 4px 0 20px;
	font-size: 13.5px;
	color: var(--ctc-muted);
}
.ctc-byline .ctc-byline-rating { display: inline-flex; align-items: center; }
.ctc-byline .ctc-byline-rating > div,
.ctc-byline .yasr-visitor-votes { margin: 0 !important; }
.ctc-byline-free::before { content: "\2713 "; color: #16a34a; font-weight: 700; } /* ✓ */

/* ---------- Long-form content + FAQ as cards (design-faqsection mockup) ---------- */
.ctc-prose,
.ctc-faq,
.ctc-page-card {
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	padding: 26px 30px;
	margin: 24px 0;
}
.ctc-page-card { margin-top: 8px; }
.ctc-page-card > :first-child { margin-top: 0; }
.ctc-page-card h2 { font-size: 21px; margin: 26px 0 10px; }
.ctc-page-card p, .ctc-page-card li { font-size: 15.5px; color: #33455a; }
/* Code/URL boxes (e.g. the API examples) must wrap inside the content card */
#cm-primary pre {
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	word-break: break-word;
	max-width: 100%;
	box-sizing: border-box;
	margin: 14px 0;
	padding: 14px 16px;
	background: var(--ctc-bg);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	font-size: 13px;
	color: var(--ctc-text);
}
#cm-primary pre a { overflow-wrap: anywhere; word-break: break-all; }
.ctc-prose > h2:first-child,
.ctc-faq > h2:first-child { margin-top: 0; }
.ctc-faq > h2 { font-size: 22px; margin-bottom: 16px; }

.ctc-faq details {
	background: var(--ctc-bg);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	padding: 14px 18px;
	margin-bottom: 10px;
}
.ctc-faq details:last-child { margin-bottom: 0; }
.ctc-faq summary {
	list-style: none;
	cursor: pointer;
	font-weight: 700;
	font-size: 15.5px;
	color: var(--ctc-text);
	position: relative;
	padding-left: 22px;
}
.ctc-faq summary::-webkit-details-marker { display: none; }
.ctc-faq summary::before {
	content: "\25B6";              /* ► closed */
	position: absolute;
	left: 2px; top: 2px;
	color: var(--ctc-accent);
	font-size: 11px;
}
.ctc-faq details[open] summary::before { content: "\25BC"; } /* ▼ open */
.ctc-faq .ctc-faq-a,
.ctc-faq details .ctc-faq-a {
	margin-top: 10px;
	color: var(--ctc-muted);
	font-size: 14.5px;
	line-height: 1.55;
}

/* ---------- Tool options: clean labeled grid (no heavy blue alert) ---------- */
.my-form .alert-info {
	background: transparent !important;
	border: none !important;
	color: var(--ctc-text) !important;
	padding: 0 !important;
	margin: 12px 0 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 18px;
	align-items: flex-start;
}
.my-form .alert-info > h2 {
	flex: 1 1 100%;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--ctc-muted);
	margin: 4px 0 0;
	font-weight: 700;
}
.my-form .alert-info > p { margin: 0; flex: 1 1 220px; min-width: 0; }
.my-form .alert-info > p:not(:has(label)) {
	flex: 1 1 100%;
	color: var(--ctc-muted);
	font-size: 12.5px;
	line-height: 1.5;
}
.my-form .alert-info > br { display: none; }
.my-form .alert-info .ctc-field { display: block; }
.my-form .alert-info label,
.my-form .alert-info label strong {
	display: block;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 11.5px;
	letter-spacing: 0.5px;
	color: var(--ctc-muted);
	margin: 0 0 5px;
}
.my-form .alert-info .form-control { width: 100%; }
/* Output format + algorithm selects span the full width (not narrow columns) */
.my-form .alert-info > p:has(select[name="audioformat"]),
.my-form .alert-info > p:has(select[name="audiomethod"]) { flex: 1 1 100%; }

/* =============================================================
   2026 mockup refinements v3 (rating, share, dropdowns, related icons)
   ============================================================= */

/* Compact read-only rating: ★ 4.9 (281 ratings) */
.ctc-byline-rating { font-weight: 600; color: var(--ctc-text); }
.ctc-byline-rating .ctc-star { color: #f5a623; }
.ctc-byline-rating .ctc-rating-count { color: var(--ctc-muted); font-weight: 400; }

/* Share button (replaces the old social-icon row) */
.ctc-share-btn {
	background: transparent;
	border: 1px solid var(--ctc-border);
	color: var(--ctc-muted);
	border-radius: 8px;
	padding: 3px 12px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: border-color .12s ease, color .12s ease, background .12s ease;
}
.ctc-share-btn:hover { border-color: var(--ctc-accent); color: var(--ctc-accent); background: var(--ctc-accent-soft); }

/* Hide the legacy social-icon share row (Facebook/X/Pinterest/Email) */
.ctc-share { display: none !important; }

/* Prettier top-bar dropdowns: rounded items, inset hover with a subtle slide */
#cm-primary-nav .sub-menu { padding: 8px !important; }
#cm-primary-nav .sub-menu a {
	padding: 8px 12px !important;
	border-radius: 8px !important;
	transition: background .12s ease, color .12s ease, padding-left .12s ease;
}
#cm-primary-nav .sub-menu a:hover,
#cm-primary-nav .sub-menu li:hover > a {
	background: var(--ctc-accent-soft) !important;
	color: var(--ctc-accent) !important;
	padding-left: 16px !important;
}
#cm-primary-nav .sub-menu .menu-item-has-children > a::after {
	content: "\203A"; /* › flyout indicator */
	float: right;
	color: var(--ctc-muted);
	margin-left: 10px;
}

/* Related-tools tiles: leading icon (mockup) */
.ctc-tools-grid a .ctc-tool-ico { font-size: 1.05em; margin-right: 5px; }

/* ---------- URL row: full-width input + Fetch button (mockup) ---------- */
/* Card grouping the "paste a link" + cloud-import controls */
.ctc-link-card {
	background: var(--ctc-bg);
	border: 1px solid var(--ctc-border);
	border-radius: var(--ctc-radius);
	padding: 18px;
	margin-bottom: 14px;
}
.ctc-urlrow { display: flex; flex-wrap: nowrap; gap: 10px; align-items: stretch; margin-bottom: 6px; }
.ctc-link-card .ctc-urlrow { margin-bottom: 0; }
.ctc-url-input { flex: 1 1 auto; min-width: 0; width: auto !important; }
.ctc-fetch-btn { flex: 0 0 auto; padding: 11px 26px !important; white-space: nowrap; }
.ctc-cloud { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; margin: 8px 0 4px; }
.ctc-link-card .ctc-cloud { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--ctc-border); }
.ctc-cloud img { height: 30px; width: auto; }

/* ---------- Footer: 3-column layout (mockup) ---------- */
.ctc-footer-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 64px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 38px 20px 24px;
}
.ctc-footer-col h4 { color: #fff; font-size: 14px; margin: 0 0 12px; font-weight: 700; }
.ctc-footer-col a { display: block; color: #9fb0c0; padding: 3px 0; font-size: 13.5px; }
.ctc-footer-col a:hover { color: #fff; }
.ctc-footer-bar {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	max-width: 1200px;
	margin: 0 auto;
	padding: 16px 20px;
	color: #7e91a3;
	font-size: 13px;
}
@media (max-width: 640px) {
	.ctc-urlrow { flex-wrap: wrap; }
	.ctc-fetch-btn { width: 100%; }
}
