/* =====================================================================
   Insuba front website - brand theme (loaded AFTER the template's insuba.css)
   Colour/font variables here are the defaults; the master page writes the
   chosen theme preset (FT_ThemePreset / FT_SiteSetting) over them at runtime.
   Below: styles only for the dynamic markup (forms, captcha, downloads,
   preview helpers). Template classes are never renamed or restyled here.
   ===================================================================== */
:root{
	--insuba-base: #0365d3;          --insuba-base-rgb: 3, 101, 211;
	--insuba-black: #122f2a;         --insuba-black-rgb: 18, 47, 42;
	--insuba-black4: #0f3564;        --insuba-black4-rgb: 15, 53, 100;
	--insuba-text: #636363;
	--insuba-white3: #f1f6f7;
	--insuba-yellow: #ffa415;
	--insuba-error: #d93025;
}

/* dynamic menu: long labels stay on one line, empty sub-menus never render */
.main-menu__list > li > a { white-space: nowrap; }
.main-menu__list ul:empty { display: none; }

/* sections hidden in the admin but shown in the admin preview */
.ft-preview-hidden { opacity: .45; outline: 2px dashed var(--insuba-error); outline-offset: -2px; }

/* ===================== Website forms: captcha, messages ===================== */
.ft-hp{
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important; height: 1px !important; overflow: hidden;
}
.ft-captcha-box{
	max-width: 520px;
}
.ft-captcha-head{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}
.ft-captcha-head label{
	font-weight: 600;
	color: var(--insuba-black);
	margin: 0;
}
.dark-section .ft-captcha-head label{
	color: var(--insuba-black);
}
.ft-captcha-refresh{
	font-size: 14px;
	color: var(--insuba-text);
}
.ft-captcha-refresh:hover{
	color: var(--insuba-base);
}
.ft-captcha-row{
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.ft-captcha-img,
.ft-captcha-inputs{
	flex: 1 1 200px;
	min-height: 70px;
	border: 1px solid var(--insuba-border-color);
	border-radius: 12px;
	background: var(--insuba-white);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6px;
}
.ft-captcha-img img{
	max-width: 100%;
	height: auto;
}
.ft-captcha-inputs{
	gap: 8px;
}
.ft-cap-digit{
	width: 42px;
	height: 46px;
	border: none;
	border-bottom: 3px solid var(--insuba-border-color);
	background: transparent;
	text-align: center;
	font-size: 24px;
	font-weight: 700;
	color: var(--insuba-black);
	outline: none;
}
.ft-cap-digit:focus{
	border-bottom-color: var(--insuba-black4);
}
.ft-cap-digit::placeholder{
	color: #9aa3b2;
}
.ft-enquiry-form .ft-invalid,
.ft-cap-digit.ft-invalid{
	border-color: var(--insuba-error, #e65757) !important;
	border-bottom-color: var(--insuba-error, #e65757) !important;
}
.ft-form-msg{
	display: none;
	margin-top: 15px;
	padding: 10px 14px;
	border-radius: 8px;
	font-weight: 500;
}
.ft-form-msg.ft-msg-ok{
	background: #e8f6ec;
	color: #18794e;
}
.ft-form-msg.ft-msg-error{
	background: #fdecec;
	color: #c0392b;
}
.ft-newsletter-msg{
	margin-top: 10px;
	font-size: 14px;
}
button.ft-busy{
	opacity: .7;
	cursor: wait;
}


/* forms in cards / sidebar */
.ft-form-card{
	background: var(--insuba-white3); border-radius: 30px; padding: 40px;
}
.ft-form-card h2{ font-size: 28px; margin-bottom: 25px; }
.ft-form-block-text .section-title{ margin-bottom: 25px; }
.ft-form-block-image{ margin-top: 30px; }
.ft-form-block-image img{ border-radius: 20px; width: 100%; max-height: 420px; object-fit: cover; }
.ft-check-list{ list-style: none; padding: 0; margin: 0 0 25px; }
.ft-check-list li{ display: flex; gap: 12px; margin-bottom: 12px; font-weight: 500; color: var(--insuba-black); }
.ft-check-list li i{ color: var(--insuba-base); margin-top: 4px; }
.ft-sidebar-form{
	background: var(--insuba-white3); border-radius: 20px; padding: 30px 25px; margin-bottom: 30px;
}
.ft-sidebar-form h2{ font-size: 24px; color: var(--insuba-base); margin-bottom: 20px; line-height: 1.3em; }
.ft-sidebar-form .ft-captcha-img, .ft-sidebar-form .ft-captcha-inputs{ flex-basis: 100%; }
.page-category-list li.ft-current a{ color: var(--insuba-base); font-weight: 700; }

/* detail pages */
.ft-rich-text p{ margin-bottom: 18px; }
.ft-rich-text h3{ font-size: 22px; margin: 25px 0 12px; }
.ft-rich-text ul{ padding-left: 20px; margin-bottom: 18px; }
.ft-detail-list{
	background: var(--insuba-white3); border-radius: 20px; padding: 30px; margin: 30px 0;
}
.ft-detail-list h3{ font-size: 22px; margin-bottom: 18px; }
.ft-detail-list ul{ list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 25px; }
.ft-detail-list li{ display: flex; gap: 10px; }
.ft-detail-list li i{ color: var(--insuba-base); margin-top: 4px; }
.ft-detail-children{ margin-top: 40px; }
.ft-detail-children h3{ font-size: 24px; margin-bottom: 25px; }
.ft-detail-children .service-item{ margin-bottom: 30px; }
@media only screen and (max-width: 767px){
	.ft-detail-list ul{ grid-template-columns: 1fr; }
	.ft-form-card{ padding: 25px 18px; border-radius: 20px; }
	.ft-mv-section, .ft-timeline-section, .ft-awards-section, .ft-downloads-section, .ft-form-block, .ft-branches, .page-team, .page-blog{ padding: 50px 0; }
}

/* downloads with OTP */
.ft-download-card{
	display: flex; gap: 25px; align-items: flex-start; background: var(--insuba-white3);
	border-radius: 24px; padding: 25px; margin-bottom: 30px;
}
.ft-download-cover{ flex: 0 0 150px; margin: 0; }
.ft-download-cover img{ width: 150px; height: 190px; object-fit: cover; border-radius: 14px; }
.ft-download-body{ flex: 1; min-width: 0; }
.ft-download-body h3{ font-size: 24px; margin-bottom: 10px; }
.ft-otp-box{ margin-top: 20px; }
.ft-otp-note{ font-size: 14px; }
.ft-otp-inputs input{ max-width: 220px; font-size: 26px; letter-spacing: 10px; text-align: center; font-weight: 700; margin-bottom: 15px; }
.ft-otp-back{ margin-left: 15px; font-size: 14px; }
@media only screen and (max-width: 575px){
	.ft-download-card{ flex-direction: column; }
}
.ft-video-title{ font-size: 18px; margin-top: 12px; }


/* ===================== generic built-ins (CONTACT_INFO, FORM_BLOCK, detail pages) in Insuba style ===================== */
.ft-sec-desc { max-width: 760px; margin: -20px 0 40px; color: var(--insuba-text); }
.ft-sec-desc.text-center { margin-left: auto; margin-right: auto; }
.contact-info-item { display: flex; gap: 18px; align-items: flex-start; padding: 24px; margin-bottom: 20px;
    background: var(--insuba-white3); border-radius: 10px; }
.contact-info-item .icon-box { flex: 0 0 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: var(--insuba-base); color: var(--insuba-white); font-size: 22px; }
.contact-info-item .icon-box img { max-width: 26px; filter: brightness(0) invert(1); }
.contact-info-item-content h3 { font-size: 18px; margin: 0 0 6px; color: var(--insuba-black); }
.contact-info-item-content p, .contact-info-item-content a { margin: 0; color: var(--insuba-text); }
.contact-location-form-box, .ft-form-card { background: var(--insuba-white3); padding: 30px; border-radius: 10px; }
.ft-detail-list-title { margin: 30px 0 18px; font-size: 22px; color: var(--insuba-black); }
.insurance-sidebar__nav li.ft-current a { color: var(--insuba-base); }
.ft-team-detail .ft-rich-text { margin-bottom: 24px; }
.ft-team-contacts { margin-bottom: 30px; }
.ft-team-detail-image img { width: 100%; border-radius: 10px; }

/* footer bottom links (admin menu FOOTER_BOTTOM, e.g. Privacy / Terms) - not in the template: copyright left, links right, same bar height */
.main-footer__bottom__inner:has(.main-footer__bottom__links){
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 24px;
}
.main-footer__bottom__links{
	display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; padding: 0;
}
.main-footer__bottom__links a{
	font-family: var(--insuba-font2, "Rubik", sans-serif);
	color: var(--insuba-white, #ffffff); transition: opacity .3s;
}
.main-footer__bottom__links a:hover{ color: var(--insuba-white, #ffffff); opacity: .75; }
@media (max-width: 767px){
	.main-footer__bottom__inner:has(.main-footer__bottom__links){ justify-content: center; text-align: center; }
	.main-footer__bottom__links{ justify-content: center; }
}

/* ---- Logos: any shape (wide or square) fits a fixed box, keeps its proportions ----
   The template forced width 212px: a square logo became 212 x 212 and stretched the header,
   a wide one was squeezed. "crisp-edges" made scaled-down logos look broken, so normal smoothing here. */
img.ft-logo { width: auto; height: auto; object-fit: contain; image-rendering: auto; }
.main-header__logo img.ft-logo { max-width: 240px; max-height: 72px; }
.footer-widget__logo img.ft-logo { max-width: 230px; max-height: 96px; }
.mobile-nav__content .logo-box img.ft-logo { max-width: 200px; max-height: 64px; }
@media (max-width: 1199px) { .main-header__logo img.ft-logo { max-width: 200px; max-height: 58px; } }
@media (max-width: 430px)  { .main-header__logo img.ft-logo { max-width: 150px; max-height: 46px; } }

/* ---- Captcha boxes inside any template form ----
   Template form styles (e.g. .contact__form input: padding 0 26px, round 30px) squeezed the 4 digit boxes
   so typed digits were invisible. These rules win over every form style. */
.ft-captcha-inputs .ft-cap-digit{
	flex: 0 0 44px !important;
	width: 44px !important; min-width: 0 !important; max-width: 44px !important;
	height: 48px !important;
	padding: 0 !important; margin: 0 !important; text-indent: 0 !important;
	border: 2px solid #d6dbe3 !important; border-radius: 10px !important;
	background: #fff !important; box-shadow: none !important;
	color: #122f2a !important; caret-color: var(--insuba-base);
	font-size: 22px !important; font-weight: 700 !important; line-height: 44px !important;
	text-align: center !important;
}
.ft-captcha-inputs .ft-cap-digit:focus{ border-color: var(--insuba-base) !important; }
.ft-captcha-inputs .ft-cap-digit.ft-invalid{ border-color: var(--insuba-error, #e65757) !important; }
.ft-captcha-refresh{
	display: inline-flex; align-items: center; gap: 5px;
	padding: 3px 12px; border-radius: 20px;
	background: rgba(255,255,255,.92); color: var(--insuba-base) !important; font-weight: 600;
}
.ft-captcha-refresh:hover{ background: #fff; }
