/* ==========================================================================
   Elite Search Consultants — overrides on top of Cavani.
   Kept in a separate file so the purchased theme's style.css stays untouched
   and can be updated without losing these.
   ========================================================================== */

/* the left author column is the brand panel, not a photo */
.cavani_tm_mainpart .author_image .main{
	background-size: cover;
	background-color: #000;
}

/* logo sizing */
.cavani_tm_header .logo a.image img{ max-height: 46px; width: auto; }
.cavani_tm_topbar .logo a.image img{ max-height: 34px; width: auto; }
.cavani_tm_mobile_menu .avatar .image{
	background-size: 70% auto !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-color: #f6fbff;
}

/* --- Our Consultants: two tiles, portrait, no filter bar --- */
.cavani_tm_portfolio .portfolio_list ul li.consultant{ width: 50%; }
.cavani_tm_portfolio .portfolio_list ul li.consultant .image img{ opacity: 0; }
.cavani_tm_portfolio .portfolio_list ul li.consultant .main{
	background-position: center top;
}
@media (max-width: 767px){
	.cavani_tm_portfolio .portfolio_list ul li.consultant{ width: 100%; }
}

/* --- Services: intro line under the title --- */
.cavani_tm_service .es_service_intro{
	margin: -18px 0 42px;
	max-width: 640px;
}
.cavani_tm_service .es_service_intro p{ font-size: 17px; }

/* three across: at four the column is only ~110px wide and long practice
   names break mid-word */
@media (min-width: 1200px){
	.cavani_tm_service .service_list ul li{ width: 33.3333%; }
}
.cavani_tm_service .service_list ul li .list_inner{
	padding: 46px 22px 40px;
	cursor: default;
}
.cavani_tm_service .service_list ul li .svg{
	width: 44px;
	height: 44px;
	margin-bottom: 20px;
}
.cavani_tm_service .service_list ul li .title{ font-size: 20px; margin-bottom: 10px; }
.cavani_tm_service .service_list ul li .text{ font-size: 15px; line-height: 1.6; }

/* --- Contact form: four fields across two rows, honeypot hidden --- */
.cavani_tm_contact .form .left .fields .first ul{ margin: 0 -10px; }
.cavani_tm_contact .form .left .fields .first ul li{
	width: 50%;
	float: left;
	padding: 0 10px;
	margin-bottom: 20px;
	list-style: none;
}
@media (max-width: 480px){
	.cavani_tm_contact .form .left .fields .first ul li{ width: 100%; }
}
.es_hp{ position: absolute; left: -9999px; }

/* the theme styles .cavani_tm_button a; ours is a real <button> so the form
   works without JavaScript. Same look, same hover. */
.cavani_tm_button button{
	text-decoration: none;
	color: #fff;
	display: inline-block;
	background-color: #333;
	padding: 13px 38px;
	border: 2px solid #333;
	font-family: "Poppins";
	font-weight: 500;
	font-size: 16px;
	line-height: 1.7;
	cursor: pointer;
	transition: all .3s ease;
}
.cavani_tm_button button:hover{
	background-color: transparent;
	color: #333;
}


/* consultant popup: contact rows read as a list, not a project spec */
.cavani_tm_portfolio .popup_details .detailbox ul li .first{ min-width: 90px; }
.cavani_tm_portfolio .popup_details .detailbox ul.share li img,
.cavani_tm_portfolio .popup_details .detailbox ul.share li svg{ width: 18px; height: 18px; }

/* --- consultant caption: name, role and contact icons, always visible ------
   The theme only reveals a tile's caption on hover, which fails on touch and
   makes a verifier work for the one fact they came for. --------------------- */
.es_person_meta{
	width: 100%;
	float: left;
	padding: 22px 2px 0;
	text-align: left;
}
.es_person_meta .es_name{
	font-size: 22px;
	font-weight: 500;
	color: #333;
	margin: 0 0 3px;
	line-height: 1.3;
}
.es_person_meta .es_role{
	display: block;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #7d7789;
	margin-bottom: 16px;
}
.es_links{
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
	display: flex;
	gap: 10px;
}
.es_links li{ list-style: none; margin: 0; }
.es_links li a{
	width: 38px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #b9b8c3;
	color: #333;
	transition: all .3s ease;
}
.es_links li a:hover{ background: #333; border-color: #333; color: #fff; }
.es_links li a .svg,
.es_links li a svg{ width: 16px; height: 16px; }
.es_tel{ font-size: 15px; color: #7d7789; }

/* the theme's hover caption is redundant now that the caption is permanent */
.cavani_tm_portfolio .portfolio_list ul li.consultant .details{ display: none !important; }
.es_links li{ width: auto !important; float: none !important; padding: 0 !important; }
.es_links li:before{ display: none !important; }

/* long practice-area names must not be broken mid-word */
.cavani_tm_service .service_list ul li .title,
.cavani_tm_service .service_list ul li .text,
.es_person_meta .es_name{
	word-wrap: normal;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}
.cavani_tm_service .service_list ul li .title{ font-size: 18px; line-height: 1.35; }
.cavani_tm_service .service_list ul li .list_inner{ min-height: 286px; }

/* --- Book a consultation: the studio portrait carries this section -------- */
.cavani_tm_contact .es_contact_intro{
	margin: -18px 0 46px;
	max-width: 620px;
}
.cavani_tm_contact .es_contact_intro p{ font-size: 17px; }

.es_consult_card{
	width: 100%;
	float: left;
	border: 1px solid #b9b8c3;
	margin-bottom: 0;
	background: #fff;
}
.es_consult_photo{ width: 100%; float: left; }
.es_consult_photo img{ width: 100%; height: auto; display: block; }
.es_consult_body{ width: 100%; float: left; padding: 26px 28px 28px; }
.es_consult_body h3{
	font-size: 22px;
	font-weight: 500;
	color: #333;
	margin: 0 0 3px;
}
.es_consult_body .es_role{
	display: block;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #7d7789;
	margin-bottom: 16px;
}
.es_consult_body p{ font-size: 15px; margin-bottom: 20px; }


/* keep the portrait in proportion to the form beside it */
.es_consult_photo img{
	height: 340px;
	object-fit: cover;
	object-position: center 16%;
}
@media (max-width: 1040px){
	.es_consult_photo img{ height: 300px; }
}

/* ==========================================================================
   Review fixes (Sept 2026)
   ========================================================================== */

/* Fallback stacks: the theme names Google fonts with no fallback, so if the
   font request is slow or blocked the page dropped to a serif. */
body, .cavani_tm_all_wrap{ font-family: "Open Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
h1, h2, h3, h4, h5, h6,
.cavani_tm_header .menu ul li a, .cavani_tm_mobile_menu .menu_list ul li a,
.cavani_tm_title span, .cavani_tm_button a, .cavani_tm_button button,
.es_person_meta .es_role, .es_consult_body .es_role, .es_tel,
.cavani_tm_service .service_list ul li .text, .es_service_intro p, .es_contact_intro p,
.cavani_tm_contact .short_info span, .cavani_tm_modalbox, .cavani_tm_footer{
	font-family: "Poppins", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Consultant contact icons: the icon list is nested inside the theme's
   portfolio grid, which gives every <ul> a -50px left margin and every <li>
   a 50px bottom margin. The phone icon was pushed under the overflow edge
   and invisible, and the phone number sat 50px too low. */
.cavani_tm_portfolio .portfolio_list ul.es_links{ margin: 0 0 12px 0 !important; }
.cavani_tm_portfolio .portfolio_list ul.es_links li{ margin: 0 !important; width: auto !important; }

/* Bio popup: the portraits are square and the popup banner is 2:1, so the
   centre crop cut the head off. Anchor to the top of the photo. */
.cavani_tm_modalbox .popup_details .top_image .main{ background-position: center 18%; }

/* --- Contact: form column stretches so the button's bottom edge sits level
   with the bottom of the consultation card. The message box absorbs the
   difference. --- */
.cavani_tm_contact .form{ align-items: stretch; }
.cavani_tm_contact .form .left,
.cavani_tm_contact .form .left .fields,
.cavani_tm_contact .form .left .fields form{ display: flex; flex-direction: column; float: none; }
.cavani_tm_contact .form .left .fields,
.cavani_tm_contact .form .left .fields form{ flex: 1 1 auto; }
.cavani_tm_contact .form .fields .first{ float: none; flex: 0 0 auto; }
.cavani_tm_contact .form .fields .last{ flex: 1 1 auto; display: flex; }
.cavani_tm_contact .form .fields .last textarea{ height: auto; min-height: 160px; flex: 1 1 auto; }
.cavani_tm_contact .form .cavani_tm_button{ flex: 0 0 auto; }
.cavani_tm_contact .form .cavani_tm_button button{ margin-bottom: 0; }
.cavani_tm_contact .form .right{ display: flex; flex-direction: column; }
.es_consult_card{ flex: 0 0 auto; }
@media (max-width: 1040px){
	.cavani_tm_contact .form .fields .last textarea{ min-height: 180px; }
}

/* tighten the space between the contact intro and the three info tiles */
.cavani_tm_contact .es_contact_intro{ margin-bottom: 0; }
.cavani_tm_contact .short_info{ margin-top: 30px; }
