/* ==========================================================================
   Trademark Certification & Renewal — page-scoped premium enhancements
   Presentation-only additions; reuses the theme's fonts, accent color and
   button classes. Scoped under .tm-page so it never leaks into other pages.
   ========================================================================== */

.tm-page{
	--tm-accent: #00bffe;
	--tm-accent-dark: #009fd6;
	--tm-heading: #222222;
	--tm-text: #6f7377;
	--tm-radius: 12px;
	--tm-shadow: 0 10px 30px rgba(15, 23, 42, 0.07);
	--tm-shadow-hover: 0 20px 40px rgba(15, 23, 42, 0.14);
	--tm-border: #eef1f4;
}

/* ---- Page-title banner ----
   Image-only banner (no heading/breadcrumb markup remains). Rendered as a
   plain <img> rather than a CSS background so the complete image is always
   shown at its native aspect ratio with zero cropping, at every viewport
   width, with no reliance on fixed section height. The theme's default 50%
   black overlay and top/bottom padding are removed so nothing dims or
   trims the image. Scoped to this page only. */
.tm-hero-title{
	padding: 0;
	line-height: 0;
	overflow: hidden;
}
.tm-hero-title:before{
	display: none;
}
.tm-hero-title-img{
	display: block;
	width: 100%;
	height: auto;
}

/* ---- Hero image ----
   Image carries its own baked-in headline/checklist text edge-to-edge, so
   it's shown at its native aspect ratio (no fixed height + cover-crop,
   which would risk trimming the bottom icon row) — guarantees the entire
   image is always visible, at any viewport width, with no distortion. */
.tm-page .services-left > .image-box{
	position: relative;
	border-radius: var(--tm-radius);
	overflow: hidden;
	box-shadow: var(--tm-shadow);
}
.tm-page .services-left > .image-box figure{
	margin: 0;
}
.tm-page .services-left > .image-box img{
	display: block;
	width: 100%;
	height: auto;
	transition: transform .6s ease;
}
.tm-page .services-left > .image-box:hover img{
	transform: scale(1.03);
}

/* ---- Quick-facts strip ---- */
.tm-quickfacts{
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin: 32px 0 4px;
	padding: 0;
	list-style: none;
}
.tm-quickfacts li{
	flex: 1 1 200px;
	display: flex;
	align-items: center;
	gap: 16px;
	background: #ffffff;
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	padding: 20px 22px;
	box-shadow: var(--tm-shadow);
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.tm-quickfacts li:hover{
	transform: translateY(-6px);
	box-shadow: var(--tm-shadow-hover);
	border-color: rgba(0, 191, 254, .35);
}
.tm-quickfacts .tm-fact-icon{
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: rgba(0, 191, 254, .1);
	color: var(--tm-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}
.tm-quickfacts h6{
	margin: 0 0 2px;
	font-size: 15px;
	font-weight: 700;
	color: var(--tm-heading);
	font-family: 'Poppins', sans-serif;
}
.tm-quickfacts span{
	font-size: 13px;
	color: var(--tm-text);
	font-family: 'Lato', sans-serif;
}

/* ---- Content cards (Certification / Renewal) ---- */
.tm-content-card{
	background: #ffffff;
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	box-shadow: var(--tm-shadow);
	padding: 44px 42px;
	margin-top: 36px;
}
.tm-section-icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--tm-accent), #4bd2fe);
	color: #ffffff;
	font-size: 24px;
	margin-bottom: 20px;
	box-shadow: 0 10px 22px rgba(0, 191, 254, .32);
}
.tm-page .image-content .sec-title-three{
	padding-top: 0;
}
.tm-page .image-content p{
	font-size: 16.5px;
	text-align: justify;
}
.tm-key-aspects-label{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--tm-accent-dark);
	margin: 22px 0 20px;
}
.tm-key-aspects-label:before{
	content: '';
	width: 24px;
	height: 2px;
	background: var(--tm-accent);
	display: inline-block;
}

/* ---- Feature grid (replaces long checklist) ---- */
.tm-feature-grid{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tm-feature-card{
	display: block;
	height: 100%;
	background: #f8fafc;
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	padding: 22px 24px;
	transition: transform .3s ease, box-shadow .3s ease, background-color .3s ease, border-color .3s ease;
}
.tm-feature-card:hover{
	transform: translateY(-5px);
	box-shadow: var(--tm-shadow-hover);
	background: #ffffff;
	border-color: rgba(0, 191, 254, .4);
}
.tm-feature-check{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(0, 191, 254, .12);
	color: var(--tm-accent-dark);
	margin-bottom: 12px;
	font-size: 13px;
}
.tm-feature-card strong{
	display: block;
	font-family: 'Poppins', sans-serif;
	font-size: 16px;
	font-weight: 600;
	color: var(--tm-heading);
	margin-bottom: 8px;
	line-height: 24px;
}
.tm-feature-desc{
	display: block;
	font-family: 'Lato', sans-serif;
	font-size: 14.5px;
	line-height: 24px;
	color: var(--tm-text);
	text-align: justify;
}

/* Last item in an odd-count grid spans full width instead of leaving an empty cell */
.tm-feature-grid li:last-child:nth-child(odd){
	grid-column: 1 / -1;
}

/* ---- Inline feature cards (icon on the same line as the label) ---- */
.tm-feature-inline .tm-feature-card{
	display: flex;
	align-items: center;
	gap: 14px;
}
.tm-feature-inline .tm-feature-card .tm-feature-check{
	margin-bottom: 0;
	flex-shrink: 0;
}
.tm-feature-inline .tm-feature-card strong{
	margin-bottom: 0;
}
.tm-feature-inline li:last-child:nth-child(odd) .tm-feature-card{
	grid-template-columns: auto 1fr;
	align-items: center;
}
.tm-feature-inline li:last-child:nth-child(odd) .tm-feature-check{
	grid-row: auto;
	margin-top: 0;
}

/* Compact checklist for simple, short list items — avoids empty-looking large cards */
.tm-compact-checklist{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 20px;
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
}
.tm-compact-checklist li{
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 8px;
	background: #f8fafc;
	border: 1px solid #edf2f6;
	border-radius: 10px;
	padding: 12px 16px;
	font-family: 'Poppins', sans-serif;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.5;
	color: #16232e;
}
.tm-compact-checklist li i{
	color: #1fae7c;
	font-size: 15px;
	line-height: inherit;
	flex-shrink: 0;
}
.tm-compact-checklist li strong{
	flex: 1;
	font-weight: 600;
	line-height: 1.5;
}
.tm-checklist-note{
	font-family: 'Lato', sans-serif;
	font-size: 12.5px;
	font-weight: 400;
	color: #8b98a3;
}
@media (max-width: 480px){
	.tm-feature-grid li:last-child:nth-child(odd) .tm-feature-card{
		grid-template-columns: 1fr;
	}
	.tm-feature-grid li:last-child:nth-child(odd) .tm-feature-check{
		grid-row: auto;
	}
}

/* ---- Sidebar ---- */
.tm-page .any-questions{
	border-radius: var(--tm-radius);
	box-shadow: var(--tm-shadow);
	transition: transform .35s ease, box-shadow .35s ease;
}
.tm-page .any-questions:hover{
	transform: translateY(-4px);
	box-shadow: var(--tm-shadow-hover);
}

/* ---- CTA / quote panel ---- */
#quote-form.row{
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}
.tm-cta-panel{
	background: #ffffff;
	border: 1px solid var(--tm-border);
	border-radius: 18px;
	box-shadow: var(--tm-shadow-hover);
	padding: 50px;
	position: relative;
	overflow: hidden;
	width: 100%;
}
.tm-cta-panel:before{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--tm-accent), #4bd2fe, var(--tm-accent));
}
.tm-cta-panel .shoos-us-content h5{
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	color: var(--tm-heading);
}
.tm-cta-panel .contact-form-one .form-group{
	margin-bottom: 22px;
}
.tm-cta-panel .contact-form-one .form-group input,
.tm-cta-panel .contact-form-one .form-group select{
	color: var(--tm-heading);
	background: #f8fafc;
	border: 1px solid var(--tm-border);
	border-radius: 8px;
	height: 48px;
	padding: 0 16px;
	line-height: 46px;
	transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.tm-cta-panel .contact-form-one .form-group input:focus,
.tm-cta-panel .contact-form-one .form-group select:focus{
	background: #ffffff;
	border-color: var(--tm-accent);
	box-shadow: 0 0 0 3px rgba(0, 191, 254, .15);
	outline: none;
}
.tm-cta-panel .contact-form-one .form-group input::placeholder{
	color: #9aa0a6;
}
.tm-cta-btn{
	border-radius: 8px;
	transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.tm-cta-btn:hover{
	transform: translateY(-3px);
	box-shadow: 0 14px 26px rgba(0, 191, 254, .35);
}

/* Image is a square-ish graphic shown at its native ratio (no forced crop).
   The column still stretches to match the quote-form's height (row has
   align-items:stretch), so the card is centered within that extra space
   rather than being force-stretched/cropped itself. */
.tm-call-col{
	display: flex;
	align-items: center;
}
.tm-call-card{
	width: 100%;
	border-radius: var(--tm-radius);
	overflow: hidden;
	box-shadow: var(--tm-shadow-hover);
}
.tm-call-card .image-box{
	position: relative;
	width: 100%;
}
.tm-call-card .image-box figure{
	margin: 0;
}
.tm-call-card .image-box img{
	display: block;
	width: 100%;
	height: auto;
	transition: transform .6s ease;
}
.tm-call-card:hover .image-box img{
	transform: scale(1.03);
}
/* The theme absolutely-positions .title-box over the bottom of the image
   (fine for a tall cropped photo); with the full uncropped graphic this
   would hide its own bottom text, so it's placed below the image instead. */
.tm-call-card .title-box{
	position: relative;
	left: auto;
	right: auto;
	bottom: auto;
}

/* ---- Pricing / Plans cards ----
   Premium SaaS-style layout: soft-lifted cards, gradient accent rail that
   reveals on hover, a scaled-up "featured" card with a floating badge, and a
   gradient-clipped price treatment. All within the page's existing accent/
   neutral palette (--tm-accent / --tm-heading / --tm-text / --tm-border). */
.tm-pricing-grid{
	display: grid;
	gap: 32px;
	margin: 12px 0 0;
	align-items: stretch;
}
.tm-pricing-grid[data-cols="1"]{
	grid-template-columns: minmax(0, 380px);
	justify-content: center;
}
.tm-pricing-grid[data-cols="2"]{ grid-template-columns: repeat(2, 1fr); }
.tm-pricing-grid[data-cols="3"]{ grid-template-columns: repeat(3, 1fr); }
.tm-pricing-grid[data-cols="4"]{ grid-template-columns: repeat(4, 1fr); }
.tm-pricing-grid[data-cols="5"]{ grid-template-columns: repeat(5, 1fr); }

.tm-pricing-card{
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #ffffff;
	border: 1px solid var(--tm-border);
	border-radius: 20px;
	box-shadow: 0 2px 10px rgba(15, 23, 42, .04);
	padding: 40px 30px 32px;
	overflow: hidden;
	transition: transform .4s cubic-bezier(.2, .8, .2, 1), box-shadow .4s ease, border-color .4s ease;
}
.tm-pricing-card:before{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--tm-accent), #4bd2fe);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s ease;
}
.tm-pricing-card:hover{
	transform: translateY(-10px);
	box-shadow: var(--tm-shadow-hover);
	border-color: rgba(0, 191, 254, .3);
}
.tm-pricing-card:hover:before{
	transform: scaleX(1);
}
@media (hover: hover) and (pointer: fine){
	.tm-pricing-card:hover{
		transform: translateY(-10px) scale(1.04) !important;
		box-shadow: 0 25px 55px rgba(15, 23, 42, .18), var(--tm-shadow-hover);
		z-index: 3;
	}
}

/* Featured / recommended plan */
.tm-pricing-card.is-featured{
	border-color: rgba(0, 191, 254, .4);
	background: linear-gradient(180deg, rgba(0, 191, 254, .05), #ffffff 160px);
	box-shadow: 0 16px 40px rgba(0, 191, 254, .16);
	z-index: 1;
}
.tm-pricing-card.is-featured:before{
	transform: scaleX(1);
}
.tm-pricing-card.is-featured:hover{
	transform: translateY(-10px) scale(1.02);
}
@media (hover: hover) and (pointer: fine){
	.tm-pricing-card.is-featured:hover{
		transform: translateY(-10px) scale(1.06) !important;
		z-index: 4;
	}
}
.tm-pricing-badge{
	position: absolute;
	top: 22px;
	right: -34px;
	background: linear-gradient(90deg, var(--tm-accent), #4bd2fe);
	color: #ffffff;
	font-family: 'Poppins', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 6px 40px;
	transform: rotate(40deg);
	box-shadow: 0 6px 16px rgba(0, 191, 254, .35);
}

.tm-pricing-head{
	margin-bottom: 4px;
}
.tm-pricing-head h4{
	font-family: 'Poppins', sans-serif;
	font-size: 21px;
	font-weight: 700;
	color: var(--tm-heading);
	margin: 0 0 4px;
	letter-spacing: -.01em;
}
.tm-pricing-sub{
	display: block;
	font-size: 13px;
	color: var(--tm-text);
	font-family: 'Lato', sans-serif;
}
.tm-pricing-price{
	font-family: 'Poppins', sans-serif;
	font-size: 25px;
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.15;
	margin: 18px 0 20px;
	background: linear-gradient(90deg, var(--tm-accent-dark), var(--tm-accent));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--tm-accent-dark);
	display: inline-block;
}
.tm-pricing-price span{
	display: inline-block;
	margin-left: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--tm-text);
	font-family: 'Lato', sans-serif;
	text-transform: none;
	-webkit-text-fill-color: var(--tm-text);
}
.tm-pricing-price.is-quote{
	font-size: 18px;
	font-weight: 700;
	background: none;
	-webkit-text-fill-color: initial;
	color: var(--tm-heading);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 30px;
	background-color: rgba(0, 191, 254, .08);
}
.tm-pricing-price.is-quote:before{
	content: '\f095';
	font-family: FontAwesome;
	font-size: 13px;
	color: var(--tm-accent-dark);
}
.tm-pricing-meta{
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--tm-text);
	font-family: 'Lato', sans-serif;
	margin: 0 0 22px;
	padding: 7px 14px;
	border-radius: 30px;
	background: #f8fafc;
	border: 1px solid var(--tm-border);
}
.tm-pricing-meta i{
	color: var(--tm-accent);
}
.tm-pricing-features{
	flex-grow: 1;
	margin: 0 0 28px;
	padding: 18px 0 0;
	list-style: none;
	border-top: 1px solid var(--tm-border);
}
.tm-pricing-features li{
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 14.5px;
	line-height: 22px;
	color: #565b60;
	font-family: 'Lato', sans-serif;
	padding: 10px 0;
	border-bottom: 1px dashed var(--tm-border);
}
.tm-pricing-features li:last-child{
	border-bottom: none;
	padding-bottom: 0;
}
.tm-pricing-features li i{
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--tm-accent), var(--tm-accent-dark));
	color: #ffffff;
	font-size: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 3px 8px rgba(0, 191, 254, .3);
}
.tm-pricing-card .tm-pricing-btn{
	width: 100%;
	text-align: center;
	margin-top: auto;
	border-radius: 10px;
	font-size: 14px;
	letter-spacing: .03em;
	padding: 14px 30px;
}
.tm-pricing-note{
	font-size: 12.5px;
	font-style: italic;
	color: var(--tm-text);
	margin: 26px 0 0;
}
.tm-note-star{
	color: var(--tm-accent);
}

/* ---- Responsive ----
   Desktop (>=1200px): every plan's own column count (2/3/4/5 side by side).
   Tablet (768px-1199px): capped at 2 per row.
   Mobile (<768px): 1 per row, full width. */
@media (max-width: 991px){
	.tm-content-card{
		padding: 34px 26px;
	}
	.tm-cta-panel{
		padding: 34px 24px;
	}
	.tm-pricing-card.is-featured,
	.tm-pricing-card.is-featured:hover{
		transform: none;
	}
}
@media (max-width: 1199px){
	.tm-pricing-grid[data-cols="3"],
	.tm-pricing-grid[data-cols="4"],
	.tm-pricing-grid[data-cols="5"]{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 767px){
	.tm-feature-grid{
		grid-template-columns: 1fr;
	}
	.tm-quickfacts li{
		flex: 1 1 100%;
	}
	.tm-content-card{
		padding: 28px 20px;
		margin-top: 26px;
	}
	.tm-pricing-card{
		padding: 34px 24px 28px;
	}
	.tm-pricing-grid[data-cols]{
		grid-template-columns: 1fr !important;
	}
}

/* ==========================================================================
   ISO / certification page family — semantic-heading additions
   Pages that use a real <h1>/<h2> (for SEO) instead of the theme's default
   <h4>/<h3> get the identical visual treatment via these tag-matched rules.
   Purely additive: existing pages keep using h4/h3 and are unaffected.
   ========================================================================== */
.page-title .title h1{
	font-size: 50px;
	font-weight: 700;
	line-height: 60px;
	color: #ffffff;
	text-transform: capitalize;
	margin: 0;
}
.tm-page .image-content .sec-title-three h2{
	position: relative;
	font-size: 35px;
	font-weight: 400;
	color: #333333;
	line-height: 26px;
	padding-bottom: 25px;
	margin-bottom: 25px;
	display: inline-block;
}
.tm-page .image-content .sec-title-three h2:after{
	position: absolute;
	content: '';
	left: 0;
	bottom: 0px;
	width: 64px;
	height: 2px;
	background-color: #00bffe;
}
/* ISO Registration sub-branch pages only (iso-90012015, iso-45001,
   iso-13485, iso-22000, iso-27001, iso-14001, iso-registration-in-india —
   marked with the .iso-subpage class on the section). Their "What is X" /
   "Plans & Pricing" / "ISO Registration in India" section titles use
   .sec-title-three h2 at the unchanged desktop size (35px font / 26px
   line-height). On a narrow phone column the 2-3 word title wraps to two
   lines, and since the line-height is smaller than the font-size those
   wrapped lines overlap. This rule has the same specificity as the
   unconditional ".tm-page ... h2" rule above, so it must stay AFTER it in
   the file to win the cascade tie on mobile — placing it inside an earlier
   media query (as a previous attempt did) let the later unconditional rule
   win instead and silently no-op the fix. Scoped to .iso-subpage and to
   this mobile media query only, so other tm-page pages and desktop are
   unaffected. */
@media (max-width: 767px){
	.iso-subpage .image-content .sec-title-three h2{
		font-size: 26px;
		line-height: 34px;
		padding-bottom: 15px;
		margin-bottom: 15px;
	}
}
/* Clickable feature-card headings (internal cross-links between certification pages) */
.tm-feature-card strong a{
	color: inherit;
}
.tm-feature-card strong a:hover{
	color: var(--tm-accent-dark);
}

/* ---- Preferred Client Combos gallery ---- */
.tm-combo-grid{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tm-combo-card{
	display: block;
	border-radius: var(--tm-radius);
	overflow: hidden;
	border: 1px solid var(--tm-border);
	box-shadow: var(--tm-shadow);
	transition: transform .3s ease, box-shadow .3s ease;
}
.tm-combo-card:hover{
	transform: translateY(-5px);
	box-shadow: var(--tm-shadow-hover);
}
.tm-combo-card img{
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}
@media (max-width: 767px){
	.tm-combo-grid{
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Get a Quote form - searchable "services" combobox
   Replaces the plain <select> (public/partials/quote_form.php) with a
   button + panel so the fixed 36-item services list (from
   public/data/quote-services.json - separate from public/data/services.json,
   which still feeds the header search box over every page) doesn't dump
   every option onto the page at once. Panel shows ~5 rows at a time
   (.qf-combo-options max-height) with the rest reachable by scrolling, plus
   a search field that filters them - see public/js/quote-form-select.js.
   The toggle button reuses .form-control so it matches the old select's
   exact size/border/font with no extra CSS needed for that part. Value/
   option text wraps instead of truncating so long names (e.g. "Limited
   Liability Partnership (LLP)") stay fully readable. ---- */
.qf-combo{
	position: relative;
}
/* .contact-form-one .form-group button (style.css) - a generic reset meant
   for the form's Submit button - outranks a single .qf-combo-toggle class on
   specificity (2 classes + tag beats 1 class) and was forcing this toggle
   back to display:block/float:right/padding:6px 50px, which pushed the
   selected label outside the box instead of laying it out with the caret.
   Matching its selector shape with one more class is enough to win cleanly
   without !important. */
.contact-form-one .form-group .qf-combo-toggle{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	min-width: 0;
	height: auto;
	min-height: 40px;
	padding: 8px 15px;
	float: none;
	text-align: left;
	cursor: pointer;
	background-color: #ffffff;
	appearance: none;
	-webkit-appearance: none;
}
.qf-combo-toggle .qf-combo-value{
	overflow: visible;
	text-overflow: unset;
	white-space: normal;
	word-break: break-word;
	line-height: 1.3;
	color: #464a4c;
	font-family: 'Lato', sans-serif;
}
.qf-combo-toggle .qf-combo-caret{
	flex-shrink: 0;
	font-size: 13px;
	color: #868686;
	transition: transform .2s ease;
}
.qf-combo.is-open .qf-combo-toggle{
	border-color: #00bffe;
}
.qf-combo.is-open .qf-combo-caret{
	transform: rotate(180deg);
}
.qf-combo-panel{
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 40;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, .15);
	border-radius: .25rem;
	box-shadow: 0 16px 32px rgba(15, 23, 42, .16);
	overflow: hidden;
}
.qf-combo-search{
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-bottom: 1px solid #eef1f4;
}
.qf-combo-search i{
	color: #9aa3ab;
	font-size: 13px;
	flex-shrink: 0;
}
.qf-combo-search-input{
	flex: 1;
	min-width: 0;
	border: none;
	outline: none;
	font-size: 14px;
	font-family: 'Lato', sans-serif;
	color: #333333;
	background: none;
}
.qf-combo-options{
	list-style: none;
	margin: 0;
	padding: 6px 0;
	max-height: 235px;
	overflow-y: auto;
}
.qf-combo-options li{
	padding: 10px 14px;
	font-size: 14.5px;
	font-family: 'Lato', sans-serif;
	color: #333333;
	cursor: pointer;
	white-space: normal;
	word-break: break-word;
	line-height: 1.3;
}
.qf-combo-options li:hover,
.qf-combo-options li.is-active{
	background: rgba(0, 191, 254, .08);
}
.qf-combo-options li.is-selected{
	background: rgba(0, 191, 254, .12);
	color: #009fd6;
	font-weight: 600;
}
.qf-combo-options li[hidden]{
	display: none;
}
.qf-combo-empty{
	padding: 18px 14px;
	text-align: center;
	font-size: 13px;
	color: #868686;
	font-family: 'Lato', sans-serif;
}
@media (max-width: 480px){
	.qf-combo-options{
		max-height: 190px;
	}
}

/* ---- Get a Quote form - Comment textarea ----
   Each page's own *-cta-panel rule (e.g. .tm-cta-panel .contact-form-one
   .form-group input) only styles input/select, not textarea, so without
   this the Comment field would fall through to style.css's plain
   .contact-form-one .form-group textarea rule (color:#ffffff, 40px single
   line height - invisible text, wrong size). One shared rule here instead
   of touching every per-page CSS file's panel variant; the extra
   .qf-comment class keeps its specificity safely above that base rule
   regardless of stylesheet load order. */
.contact-form-one .form-group textarea.qf-comment{
	position: relative;
	display: block;
	width: 100%;
	min-height: 110px;
	padding: 12px 16px;
	color: var(--tm-heading, #222222);
	background: #f8fafc;
	border: 1px solid var(--tm-border, #eef1f4);
	border-radius: 8px;
	font-size: 15px;
	font-family: 'Lato', sans-serif;
	line-height: 1.6;
	resize: vertical;
	transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.contact-form-one .form-group textarea.qf-comment::placeholder{
	color: #9aa0a6;
}
.contact-form-one .form-group textarea.qf-comment:focus{
	background: #ffffff;
	border-color: var(--tm-accent, #00bffe);
	box-shadow: 0 0 0 3px rgba(0, 191, 254, .15);
	outline: none;
}
