.elementor-kit-4{--e-global-color-primary:#0A0A0A;--e-global-color-secondary:#1A1A1A;--e-global-color-text:#A3A3A3;--e-global-color-accent:#9F9E9E;--e-global-color-mwhite:#FFFFFF;--e-global-color-mpanel:#2A2A2A;--e-global-color-mpanelx:#2F2F2F;--e-global-color-mline:#292929;--e-global-color-mfootdiv:#5F5D5D;--e-global-color-mfootbar:#313131;--e-global-color-mtagline:#B1B0B0;--e-global-color-memail:#999999;--e-global-color-mcopy:#7D7D7D;--e-global-color-msubmenu:#B6B6B6;--e-global-color-mcaret:#C3C7C9;--e-global-color-marrow:#9397A7;--e-global-color-mgrey:#505050;--e-global-color-mpagtxt:#BFBFBF;--e-global-color-mpagline:#D8D8D8;--e-global-color-mctaahead:#FFFCFC;--e-global-color-mctaastrk:#757070;--e-global-color-mctaa1:#888484;--e-global-color-mctaa2:#1B1A1A;--e-global-color-mctab1:#B1ADAD;--e-global-color-mctab2:#888888;--e-global-color-mctabhead:#EBEFF1;--e-global-color-mctabcap:#E0DDDD;--e-global-color-mbtnline:#F0E8E8;--e-global-color-mhair:rgba(255,255,255,0.1);--e-global-color-mhline:rgba(255,255,255,0.2);--e-global-color-moverlay:rgba(0,0,0,0.7);--e-global-typography-primary-font-family:"Titillium Web";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Josefin Sans";--e-global-typography-secondary-font-size:14px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-line-height:26.25px;--e-global-typography-secondary-letter-spacing:0.5px;--e-global-typography-text-font-family:"Raleway";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:30px;--e-global-typography-accent-font-family:"Titillium Web";--e-global-typography-accent-font-size:13px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.42857em;--e-global-typography-accent-letter-spacing:0.5px;--e-global-typography-mroboto-font-family:"Roboto";--e-global-typography-mroboto-font-weight:400;--e-global-typography-mptitle-font-family:"Titillium Web";--e-global-typography-mptitle-font-size:60px;--e-global-typography-mptitle-font-weight:300;--e-global-typography-mptitle-line-height:1.4em;--e-global-typography-msectit-font-family:"Titillium Web";--e-global-typography-msectit-font-size:42px;--e-global-typography-msectit-font-weight:400;--e-global-typography-msectit-line-height:48px;--e-global-typography-mcrumbs-font-family:"Titillium Web";--e-global-typography-mcrumbs-font-size:14px;--e-global-typography-mcrumbs-font-weight:500;--e-global-typography-mcrumbs-text-transform:uppercase;--e-global-typography-mcrumbs-line-height:26.25px;background-color:#0A0A0A;color:#A3A3A3;font-family:"Raleway", Sans-serif;font-size:16px;font-weight:400;line-height:30px;}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{background-color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;line-height:1.42857em;letter-spacing:0.5px;color:#1A1A1A;border-style:solid;border-width:1px 1px 1px 1px;border-color:rgba(0,0,0,0);border-radius:0px 0px 0px 0px;padding:18px 41px 18px 41px;}.elementor-kit-4 button:hover,.elementor-kit-4 button:focus,.elementor-kit-4 input[type="button"]:hover,.elementor-kit-4 input[type="button"]:focus,.elementor-kit-4 input[type="submit"]:hover,.elementor-kit-4 input[type="submit"]:focus,.elementor-kit-4 .elementor-button:hover,.elementor-kit-4 .elementor-button:focus{background-color:#1A1A1A;color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#1A1A1A;border-radius:0px 0px 0px 0px;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4 p{margin-block-end:20px;}.elementor-kit-4 a{color:#1A1A1A;}.elementor-kit-4 a:hover{color:#9F9E9E;}.elementor-kit-4 h1{color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:48px;font-weight:400;}.elementor-kit-4 h2{color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:42px;font-weight:400;}.elementor-kit-4 h3{color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:36px;font-weight:400;}.elementor-kit-4 h4{color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:30px;font-weight:400;}.elementor-kit-4 h5{color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:24px;font-weight:400;}.elementor-kit-4 h6{color:#FFFFFF;font-family:"Titillium Web", Sans-serif;font-size:20px;font-weight:400;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-4{--e-global-typography-mptitle-font-size:42px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-4{--e-global-typography-secondary-font-size:12px;--e-global-typography-secondary-line-height:22.5px;--e-global-typography-mptitle-font-size:32px;--e-global-typography-msectit-font-size:27px;--e-global-typography-msectit-line-height:38px;}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{padding:12px 20px 12px 20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* == 00-base.css == */
/* Milano base CSS (owner: kit-components). Reaches the site through build/kit_css.php -> Kit custom CSS.
   theratio dark-scheme rules + the classes used by build/lib/milano.php (all custom classes start with "m-").
   Never use the word s-e-l-e-c-t-o-r in these files (Elementor rewrites it). */

/* ---------------------------------------------------------------- base (theme style.css, dark scheme) */
body { word-break: break-word; overflow-wrap: break-word; }
h1, h2, h3, h4, h5, h6 { line-height: 1.4; margin: 0 0 20px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; } /* live (theratio) zeroes only the last <p>; lists keep 20px */
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol { margin: 0 0 20px; padding-left: 18px; }
a { transition: all .3s linear; text-decoration: none; }
img { max-width: 100%; height: auto; }

/* top-level containers: 15px side padding by default (theme .container gutter); nested containers default to 0 (Kit) */
.e-con.e-parent { --container-default-padding-left: 15px; --container-default-padding-right: 15px; }

/* form fields (dark scheme), low specificity so widget settings win */
:where(input[type=text], input[type=email], input[type=url], input[type=password], input[type=search], input[type=number],
       input[type=tel], input[type=date], textarea) {
	color: #a3a3a3; background: transparent; border: none; border-bottom: 1px solid #292929; border-radius: 0;
	padding: 8px 10px; font-family: "Raleway", sans-serif; font-size: 14px; font-weight: 500;
}
:where(input, textarea)::placeholder { color: #a3a3a3; opacity: 1; }

/* live Additional CSS: hide lightbox download buttons */
.lg-toolbar .lg-download,
.elementor-lightbox .elementor-lightbox-download-button,
[class*="lightbox"] [class*="download"],
.elementor-slideshow__header-tools .elementor-lightbox-download-button { display: none !important; }

/* ---------------------------------------------------------------- buttons = theratio .octf-btn (m_btn) */
.elementor-widget-button.m-btn .elementor-button {
	position: relative; display: inline-block; max-width: 100%;
	font-family: "Titillium Web", sans-serif; font-size: 13px; font-weight: 600; line-height: 1.42857143;
	letter-spacing: .5px; text-transform: uppercase; white-space: nowrap; text-align: center; vertical-align: middle;
	padding: 18px 41px; border: 1px solid transparent; border-radius: 0; box-shadow: none;
	background: #fff; color: #1a1a1a; fill: #1a1a1a;
	transition: all .3s linear; --m-line: #1a1a1a;
}
.elementor-widget-button.m-btn .elementor-button .elementor-button-content-wrapper { justify-content: center; }
.elementor-widget-button.m-btn .elementor-button::before,
.elementor-widget-button.m-btn .elementor-button::after {
	content: ""; position: absolute; background: var(--m-line); transition: all .3s linear; pointer-events: none;
}
.elementor-widget-button.m-btn .elementor-button::before { width: calc(100% + 2px); height: 1px; bottom: -6px; left: 10px; }
.elementor-widget-button.m-btn .elementor-button::after { width: 1px; height: calc(100% + 2px); top: 10px; right: -6px; }
.elementor-widget-button.m-btn .elementor-button:hover::before,
.elementor-widget-button.m-btn .elementor-button:focus::before { width: 0; }
.elementor-widget-button.m-btn .elementor-button:hover::after,
.elementor-widget-button.m-btn .elementor-button:focus::after { height: 0; }
.elementor-widget-button.m-btn.m-btn--nolines .elementor-button::before,
.elementor-widget-button.m-btn.m-btn--nolines .elementor-button::after { display: none; }

/* white (dark-scheme default .octf-btn: page-band CTA, Load More): lines #1a1a1a */
.elementor-widget-button.m-btn .elementor-button:hover,
.elementor-widget-button.m-btn .elementor-button:focus { background: #1a1a1a; color: #fff; fill: #fff; border-color: #1a1a1a; }

/* light (.octf-btn-light): white offset lines */
.elementor-widget-button.m-btn--light .elementor-button { --m-line: #fff; }

/* dark (.octf-btn-dark) */
.elementor-widget-button.m-btn--dark .elementor-button,
.elementor-widget-button.m-btn--dark-xl .elementor-button { background: #1a1a1a; color: #fff; fill: #fff; }
.elementor-widget-button.m-btn--dark .elementor-button:hover,
.elementor-widget-button.m-btn--dark .elementor-button:focus,
.elementor-widget-button.m-btn--dark-xl .elementor-button:hover,
.elementor-widget-button.m-btn--dark-xl .elementor-button:focus { background: #fff; color: #1a1a1a; fill: #1a1a1a; border-color: #fff; }

/* dark-xl ("View Our Portfolios" CTA): 28px/40, no uppercase, 375px wide (never wider than its column), border #F0E8E8 */
.elementor-widget-button.m-btn--dark-xl .elementor-button,
.elementor-widget-button.m-btn--dark-xl .elementor-button:hover,
.elementor-widget-button.m-btn--dark-xl .elementor-button:focus { border-color: #f0e8e8; }
.elementor-widget-button.m-btn--dark-xl .elementor-button { width: 375px; font-size: 28px; text-transform: none; }

/* white border in all states (CTA bands, footer "Contact Form") */
.elementor-widget-button.m-btn--wb .elementor-button,
.elementor-widget-button.m-btn--wb .elementor-button:hover,
.elementor-widget-button.m-btn--wb .elementor-button:focus { border-color: #fff; }

/* flat (404 white-btn) */
.elementor-widget-button.m-btn--flat .elementor-button { padding: 13px 33px; }
.elementor-widget-button.m-btn--flat .elementor-button::before,
.elementor-widget-button.m-btn--flat .elementor-button::after { display: none; }

/* details (.btn-details text link with a grey block behind the first letters) */
.elementor-widget-button.m-btn--details .elementor-button,
.elementor-widget-button.m-btn--details .elementor-button:hover,
.elementor-widget-button.m-btn--details .elementor-button:focus {
	background: transparent; border: 0; padding: 0; color: #fff; fill: #fff; z-index: 0; display: inline; white-space: nowrap;
}
.elementor-widget-button.m-btn--details .elementor-button .elementor-button-content-wrapper,
.elementor-widget-button.m-btn--details .elementor-button .elementor-button-text { display: inline; }
.elementor-widget-button.m-btn--details .elementor-button::before {
	width: 20px; height: 12px; bottom: -3px; left: -7px; background: #505050; z-index: -1;
}
.elementor-widget-button.m-btn--details .elementor-button::after { display: none; }
.elementor-widget-button.m-btn--details .elementor-button:hover::before,
.elementor-widget-button.m-btn--details .elementor-button:focus::before {
	width: calc(100% + 14px); transition: width .6s cubic-bezier(.68, -.55, .265, 1.55);
}

@media (max-width: 767px) {
	.elementor-widget-button.m-btn .elementor-button { padding: 12px 20px; white-space: normal; }
	.elementor-widget-button.m-btn--dark-xl .elementor-button { font-size: 21px; }
	.elementor-widget-button.m-btn--details .elementor-button { padding: 0; }
	.elementor-widget-button.m-btn--flat .elementor-button { padding: 13px 33px; }
}

/* ---------------------------------------------------------------- iheading (m_heading) */
.e-con.m-ih { --position: relative; }
.m-ih .m-ih-title, .m-ih .m-ih-sub { position: static; }
.m-ih--dots .m-ih-title .elementor-heading-title::after {
	content: ""; position: absolute; left: 1px; bottom: 1px; width: 66px; height: 2px;
	border-bottom: 2px dotted currentColor; pointer-events: none;
}
.m-ih--center .m-ih-title .elementor-heading-title::after { left: 50%; transform: translateX(-50%); }
.m-ih--right .m-ih-title .elementor-heading-title::after { left: auto; right: 2px; transform: none; }
@media (max-width: 1024px) {
	.m-ih--left-t .m-ih-title .elementor-heading-title::after { left: 1px; right: auto; transform: none; }
	.m-ih--center-t .m-ih-title .elementor-heading-title::after { left: 50%; right: auto; transform: translateX(-50%); }
	.m-ih--right-t .m-ih-title .elementor-heading-title::after { left: auto; right: 2px; transform: none; }
}
@media (max-width: 767px) {
	.m-ih--left-m .m-ih-title .elementor-heading-title::after { left: 1px; right: auto; transform: none; }
	.m-ih--center-m .m-ih-title .elementor-heading-title::after { left: 50%; right: auto; transform: translateX(-50%); }
	.m-ih--right-m .m-ih-title .elementor-heading-title::after { left: auto; right: 2px; transform: none; }
}
@media (max-width: 600px) { .m-ih .m-ih-title .elementor-heading-title br { display: none; } }

/* ---------------------------------------------------------------- page-title band (m_band) */
.m-band { color: #fff; text-align: center; }
@media (min-width: 601px) and (max-width: 767px) {
	body .m-band .elementor-element.m-band-title .elementor-heading-title { font-size: 42px; }
}
/* breadcrumbs = Icon List (inline): theme li {padding-left:24px; margin-left:10px} + "••" separator; Elementor's own
   icon-list CSS loads after the Kit CSS, hence the doubled widget classes */
.elementor-widget.m-crumbs .elementor-icon-list-items.elementor-inline-items { margin: 0; justify-content: center; }
.elementor-widget.m-crumbs .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item {
	display: block; position: relative; margin: 0 0 0 10px; padding: 0 0 0 24px; line-height: 26.25px;
}
.elementor-widget.m-crumbs .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:first-child { margin-left: 0; padding-left: 0; }
.elementor-widget.m-crumbs .elementor-icon-list-items .elementor-icon-list-item::before {
	content: "••"; position: absolute; left: -2px; top: 8px; color: #fff;   /* literal, not the CSS escape 2022: a Kit save that unslashed it printed "20222022" on 23 Oct (review:chrome) */
	font-family: "Josefin Sans", sans-serif; font-size: 14px; font-weight: 400; line-height: 1; letter-spacing: 4px;
}
.elementor-widget.m-crumbs .elementor-icon-list-items .elementor-icon-list-item:first-child::before { display: none; }
.elementor-widget.m-crumbs .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item::after { display: none; }
.elementor-widget.m-crumbs .elementor-icon-list-item > a,
.elementor-widget.m-crumbs .elementor-icon-list-item .elementor-icon-list-text { display: inline; }
.elementor-widget.m-crumbs .elementor-icon-list-item > a {
	background-image: linear-gradient(0deg, #7e7e7e, #f5f5f5); background-size: 0 2px; background-position: 0 88%;
	background-repeat: no-repeat; transition: all .3s linear;
	/* tap target: 2px vertical padding grows the inline link box from 21 to 25px (>=24px). Vertical padding on an inline
	   box does not move the line box, and content-box origin keeps the hover underline where it was: no visual change */
	padding: 2px 0; background-origin: content-box;
}
.elementor-widget.m-crumbs .elementor-icon-list-item > a:hover { background-size: 100% 2px; }
@media (max-width: 575px) {
	body .m-band .elementor-element.m-band-cta { --flex-direction: column; --gap: 12px; --row-gap: 12px; --column-gap: 12px; }
	body .m-band .elementor-element.m-band-cta > .elementor-widget-button { width: 100%; max-width: 300px; }
	body .m-band .m-band-cta .elementor-button { display: block; width: 100%; }
}

/* ---------------------------------------------------------------- theme grid lines (home CTA band) */
.e-con.m-lines { --position: relative; }
.m-lines::after {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(#292929, #292929) 90px 0 / 1px 100% no-repeat,
	            linear-gradient(#292929, #292929) calc(100% - 90px) 0 / 1px 100% no-repeat;
}
.m-lines > .e-con-inner { position: relative; z-index: 1; }
@media (max-width: 1024px) {
	.m-lines::after {
		background: linear-gradient(#292929, #292929) 0 0 / 1px 100% no-repeat,
		            linear-gradient(#292929, #292929) 100% 0 / 1px 100% no-repeat;
	}
}

/* ---------------------------------------------------------------- utilities for other builders */
/* title link underline that grows on hover (post titles, recent posts, post nav) */
.m-tlink a, a.m-tlink {
	background-image: linear-gradient(0deg, #4b4b4b, #f5f5f5); background-size: 0 2px; background-position: 0 90%;
	background-repeat: no-repeat; transition: all .3s linear;
}
.m-tlink a:hover, a.m-tlink:hover { background-size: 100% 2px; }

/* ---------------------------------------------------------------- theme container steps (bootstrap .container)
   1200 (>=1230) / 970 (992-1229) / 750 (768-991) / 100% (<768), each incl. 15px padding.  Elementor only knows the
   1024/767 breakpoints, so the in-between steps are set here for theme-width boxes (m_section 1170/1200, CTA bands)
   and for the page-title band text width. */
@media (min-width: 1230px) {
	body .elementor-element.m-band.e-con { --padding-left: calc(50% - 585px); --padding-right: calc(50% - 585px); }
}
@media (min-width: 992px) and (max-width: 1229px) {
	body .elementor-element.m-box.e-con { --content-width: calc(970px - var(--padding-left, 0px) - var(--padding-right, 0px)); }
	body .elementor-element.m-band.e-con { --padding-left: calc(50% - 470px); --padding-right: calc(50% - 470px); }
}
@media (min-width: 768px) and (max-width: 991px) {
	body .elementor-element.m-box.e-con { --content-width: calc(750px - var(--padding-left, 0px) - var(--padding-right, 0px)); }
	body .elementor-element.m-band.e-con { --padding-left: calc(50% - 360px); --padding-right: calc(50% - 360px); }
}

/* == 10-header-footer.css == */
/* Milano header / footer / 404 (owner: header-footer). Reaches the site through build/kit_css.php.
   Templates: build/theme/30-header.php, 40-footer.php, 50-404.php.  Live specs: harvest/theme/*.json.
   Never use the word s-e-l-e-c-t-o-r in this file (Elementor rewrites it). */

/* ================================================================ HEADER */
/* the root takes no space: both bars overlay the page band / home hero like the theratio .header-transparent */
body .elementor-element.m-hdr.e-con { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; min-height: 0; }
body .elementor-element.m-hdr-row.e-con {
	--position: absolute; position: absolute; top: 0; left: 0; right: 0; width: 100%; z-index: 999;
	background: transparent; border-bottom: 1px solid rgba(255, 255, 255, .2);
}
body .elementor-element.m-hdr-m.e-con { box-shadow: 1px 0 10px 0 rgba(255, 255, 255, .1); }
.admin-bar .m-hdr-row { margin-top: 32px; }
@media (max-width: 782px) { .admin-bar .m-hdr-row { margin-top: 46px; } }

/* sticky (theratio "is-stuck": fixed, #1A1A1A, slide down) — class m-stuck is toggled by the header script */
body .elementor-element.m-hdr-row.e-con.m-stuck {
	--position: fixed; position: fixed; background-color: #1a1a1a; border-bottom: 0;
	animation: m-sticky-down .65s cubic-bezier(.23, 1, .32, 1) both;
}
body .elementor-element.m-hdr-d.e-con.m-stuck {
	--min-height: 101px; box-shadow: 4px 4px 30px 0 rgba(42, 67, 113, .15);
	-webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
}
body .elementor-element.m-hdr-m.e-con.m-stuck { --min-height: 76px; }
@media (max-width: 600px) { .admin-bar .m-hdr-row.m-stuck { margin-top: 0; } }
@keyframes m-sticky-down { from { transform: translateY(-100%); } to { transform: translateY(0); } }

/* logo cells */
.m-hdr-col-logo { min-width: 0; }
.m-hdr-logo a, .m-hdr-logo img, .m-hdr-logo-m a, .m-hdr-logo-m img { display: block; }
.m-hdr-logo img { max-width: 100%; height: auto; }
.m-hdr-col-nav { min-width: 0; }

/* ---------------------------------------------------------------- desktop menu (Nav Menu widget .m-hdr-nav) */
.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item {
	height: 101px; line-height: 26.25px; padding-top: 0; padding-bottom: 0; white-space: nowrap;
	overflow: hidden;   /* review:chrome — live clips the diamond at the bar line: only its upper half (a small triangle) shows */
}
/* review:chrome — never wrap the menu onto a second row (Elementor's ul is flex-wrap:wrap; at 1200-1240 "Contact" wrapped) */
.m-hdr-nav .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal > .elementor-nav-menu { flex-wrap: nowrap; }
/* white diamond under the current / hovered item, sitting on the bar's bottom line */
.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item::before {
	content: ""; display: block; position: absolute; width: 8px; height: 8px; left: 50%; margin-left: -5px; bottom: -14px; top: auto;
	opacity: 0; background: #fff; transform: rotate(45deg); transition: all .3s linear; z-index: 2;
}
.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li:hover > a.elementor-item::before,
.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-item > a.elementor-item::before,
.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-ancestor > a.elementor-item::before { bottom: -4px; opacity: 1; }
.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item::after { display: none; }
/* dropdown caret: small chevron #C3C7C9, white on hover */
.m-hdr-nav .elementor-nav-menu--main .sub-arrow { padding: 0 0 0 9px; margin: 0; color: #c3c7c9; transition: color .3s linear; }
.m-hdr-nav .elementor-nav-menu--main .sub-arrow .e-font-icon-svg,
.m-hdr-nav .elementor-nav-menu--main .sub-arrow svg { width: 8px; height: 13px; fill: currentColor; }   /* glyph 8x5 like live (was 5x3) */
.m-hdr-nav .elementor-nav-menu--main li:hover > a .sub-arrow { color: #fff; }
/* sub-menu box: #2A2A2A, 290px, 20px 0, 34px left of the parent link, fade + slide (30px -> 10px) */
.m-hdr-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > ul.sub-menu {
	inset-inline-start: calc(var(--e-nav-menu-horizontal-menu-item-margin, 0px) - 34px) !important;
	margin-left: 0 !important; margin-top: 0 !important;
	width: auto !important; min-width: 290px !important; padding: 20px 0; background: #2a2a2a;
	box-shadow: 3px 3px 15px 0 rgba(0, 0, 0, .1); transform: translateY(10px);
	animation: m-sub-in .3s ease-in-out both;
}
.m-hdr-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:first-child > ul.sub-menu { inset-inline-start: -34px !important; }
.m-stuck .m-hdr-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > ul.sub-menu { transform: translateY(0); animation-name: m-sub-in-stuck; }
@keyframes m-sub-in { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(10px); } }
@keyframes m-sub-in-stuck { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li { padding: 0 34px; background: transparent; }
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item {
	display: block; position: relative; padding: 5px 0; line-height: 30px; white-space: nowrap;
	border: 0; background: transparent; transition: all .3s linear;
}
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item::before {
	content: ""; position: absolute; top: 50%; left: 0; width: 0; height: 1px; background: #fff; opacity: 0;
	transition: all .3s linear; display: block;
}
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item:hover,
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item:focus,
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li.current-menu-item > a.elementor-sub-item { padding-left: 40px; color: #fff; background: transparent; }
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item:hover::before,
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item:focus::before,
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li.current-menu-item > a.elementor-sub-item::before { width: 30px; opacity: 1; }
.m-hdr-nav .elementor-nav-menu--main ul.sub-menu > li > a.elementor-sub-item::after { display: none; }
/* 1025-1199px: theme uses 14px item margins; the bar is narrower than the menu there, so the margin shrinks
   with the viewport (10px at 1025 -> 14px at 1199) instead of overlapping the logo like on live */
@media (min-width: 1025px) and (max-width: 1199px) {
	body .m-hdr-nav.elementor-widget .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal {
		--e-nav-menu-horizontal-menu-item-margin: calc(10px + (100vw - 1025px) * .023);
	}
}
/* review:chrome — 1200-1259px: the 61.028% column (732px at 1200) is narrower than the menu with 20px margins (757px), so
   the margin is what still fits ((column - ~480px of labels) / 14 margins), reaching the theme's 20px at ~1250px */
@media (min-width: 1200px) and (max-width: 1259px) {
	body .m-hdr-nav.elementor-widget .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal {
		--e-nav-menu-horizontal-menu-item-margin: min(20px, calc((61.028vw - 480px) / 14));
	}
}

/* ---------------------------------------------------------------- search (HTML widget .m-hdr-search) */
.elementor-widget.m-hdr-search { display: flex; }
.m-hdr-d .elementor-widget.m-hdr-search { margin-right: 65px; }
.m-hdr-m .elementor-widget.m-hdr-search { padding-right: 30px; }
.m-search { position: relative; display: flex; align-items: center; height: 100%; }
.m-search button.m-search-toggle,
.m-search button.m-search-toggle:hover,
.m-search button.m-search-toggle:focus {
	display: flex; align-items: center; justify-content: center; width: 22px; height: 41px; margin: 0; padding: 0;
	background: transparent; border: 0; border-radius: 0; color: #fff; cursor: pointer; line-height: 1; box-shadow: none;
}
.m-search .m-ico { display: block; width: 22px; height: 22px; }
.m-search .m-ico-close { display: none; width: 20px; height: 20px; }   /* live close X spans ~19px */
.m-search.is-open .m-ico-search { display: none; }
.m-search.is-open .m-ico-close { display: block; }
.m-search-drop {
	display: none; position: absolute; top: calc(100% + 10px); right: -30px; z-index: 99;
	width: 340px; max-width: calc(100vw - 20px); padding: 20px 35px 34px; box-sizing: border-box;
	background: #2a2a2a; box-shadow: 3px 3px 15px 0 rgba(0, 0, 0, .1);
}
.m-search.is-open .m-search-drop { display: block; animation: m-search-up .5s cubic-bezier(.23, 1, .32, 1) both; }
@keyframes m-search-up { from { opacity: 0; transform: translateY(10%); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 600px) { .m-search-drop { right: -65px; } }
.m-search-form { position: relative; margin: 0; }
.m-search-form label { display: block; margin: 0; }
.m-search input.m-search-field {
	display: block; width: 270px; max-width: 100%; height: 46px; margin: 0; padding: 0 46px 0 10px; box-sizing: border-box;
	background: transparent; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .1); border-radius: 0; box-shadow: none; outline: 0;
	color: #fff; font-family: "Raleway", sans-serif; font-size: 14px; font-weight: 400; line-height: 14px;
}
.m-search input.m-search-field::placeholder { color: #fff; opacity: 1; }
.m-search input.m-search-field::-webkit-search-cancel-button { -webkit-appearance: none; }
.m-search button.m-search-submit,
.m-search button.m-search-submit:hover,
.m-search button.m-search-submit:focus {
	position: absolute; top: 0; right: 0; width: 46px; height: 46px; margin: 0; padding: 1px 6px;
	display: flex; align-items: center; justify-content: center;
	background: transparent; border: 0; border-radius: 0; color: #fff; cursor: pointer; box-shadow: none;
}
.m-search button.m-search-submit .m-ico { width: 17px; height: 17px; }

/* ---------------------------------------------------------------- hamburger cell / mobile toggle (Icon widgets) */
.m-hdr-row .elementor-widget-icon .elementor-icon-wrapper,
.m-hdr-row .elementor-widget-icon .elementor-icon { display: flex; align-items: center; justify-content: center; height: 100%; }
.m-hdr-row .elementor-widget-icon .elementor-icon svg { width: 22px; height: 22px; }
.elementor-widget.m-hdr-burger { display: flex; width: 90px; flex: 0 0 90px; border-left: 1px solid rgba(255, 255, 255, .2); }
.elementor-widget.m-hdr-burger .elementor-icon-wrapper, .elementor-widget.m-hdr-burger .elementor-icon { width: 100%; }
.elementor-widget.m-hdr-toggle { display: flex; padding-right: 15px; }

/* review:mobile-seo — bigger invisible tap area for the phone/tablet header icons (22px wide glyphs -> 44px hit box,
   negative margins keep the icons exactly where they were) */
.m-hdr-m .m-search button.m-search-toggle,
.m-hdr-m .m-search button.m-search-toggle:hover,
.m-hdr-m .m-search button.m-search-toggle:focus { width: 44px; height: 44px; margin: 0 -11px; }
.m-hdr-m .elementor-widget.m-hdr-toggle .elementor-icon { width: 44px; margin: 0 -11px; }

/* ---------------------------------------------------------------- off-canvas panels (Off-Canvas widgets) */
.m-panel .e-off-canvas__content, .m-mmenu .e-off-canvas__content {
	box-shadow: none; max-width: 100vw; scrollbar-width: none;
}
.m-panel .e-off-canvas__content::-webkit-scrollbar, .m-mmenu .e-off-canvas__content::-webkit-scrollbar { display: none; }
.m-panel .e-off-canvas__overlay, .m-mmenu .e-off-canvas__overlay { cursor: url(/wp-content/uploads/2026/10/close.webp) 16 16, pointer; }
.m-panel .e-off-canvas__main, .m-mmenu .e-off-canvas__main { pointer-events: none; }
.m-panel .e-off-canvas__content, .m-mmenu .e-off-canvas__content { pointer-events: all; }

/* side panel (desktop hamburger): close box 90x90 #2F2F2F top right */
body .elementor-element.m-panel-inner.e-con { --position: relative; position: relative; min-height: 100%; }
.m-panel .elementor-element.m-panel-close { position: absolute; top: 0; right: 0; width: 90px; height: 90px; background: #2f2f2f; z-index: 2; }
.m-panel .m-panel-close .elementor-icon-wrapper, .m-panel .m-panel-close .elementor-icon { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.m-panel .m-panel-close .elementor-icon svg { width: 23px; height: 23px; }   /* live X spans 22px (glyph inset ~1px) */
.m-panel-logo a, .m-panel-logo img { display: block; }
.m-contact p { margin: 0 0 20px; }
.m-contact p:last-child { margin-bottom: 0; }
.m-contact img, .m-social img { display: inline; vertical-align: middle; max-width: none; }
.m-social p { margin: 0; }

/* mobile menu off-canvas: right arrow close, Raleway 14 white items with 1px dividers, sub-menu toggle on the right */
.m-mmenu .elementor-element.m-mmenu-close { margin-bottom: 10px; }
.m-mmenu .m-mmenu-close .elementor-icon-wrapper { display: flex; justify-content: flex-start; }
.m-mmenu .m-mmenu-close .elementor-icon { display: flex; align-items: center; height: 39px; }
.m-mmenu .m-mmenu-close .elementor-icon svg { width: 22px; height: 22px; }   /* live arrow: 22px wide, 17px head */
.m-mnav nav.elementor-nav-menu--dropdown { background: transparent; margin-top: 0; overflow: visible; }
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu li { border: 0; background: transparent; }
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.elementor-item,
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.elementor-sub-item {
	display: block; position: relative; padding: 9px 30px 9px 0; line-height: 26.25px;
	font-family: "Raleway", sans-serif; font-size: 14px; font-weight: 400; color: #fff; background: transparent;
	border: 0; border-bottom: 1px solid rgba(255, 255, 255, .1); white-space: normal; transition: all .3s linear;
}
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.elementor-item::before,
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.elementor-sub-item::before {
	content: ""; position: absolute; top: 50%; left: 0; width: 0; height: 1px; background: #fff; opacity: 0; transition: all .3s linear; display: block;
}
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a:hover,
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a:focus-visible { padding-left: 40px; color: #fff; background: transparent; }
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a:hover::before,
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a:focus-visible::before { width: 30px; opacity: 1; }
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.has-submenu:hover,
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.has-submenu.highlighted { padding-left: 0; }
.m-mnav .elementor-nav-menu--dropdown .elementor-nav-menu a.has-submenu:hover::before { width: 0; opacity: 0; }
.m-mnav .elementor-nav-menu--dropdown ul.sub-menu { margin-left: 15px; position: static; width: auto; background: transparent; }
.m-mnav .elementor-nav-menu--dropdown .sub-arrow {
	position: absolute; top: 0; right: 0; width: 34px; height: 100%; margin: 0; padding: 7px 12px 7px 0;
	display: flex; align-items: center; justify-content: flex-end; color: #9397a7; cursor: pointer;
}
.m-mnav .elementor-nav-menu--dropdown .sub-arrow svg { width: 8px; height: 16px; fill: currentColor; transform: none; transition: transform .3s linear; }   /* glyph ~6x10 like live (was 4x6) */
.m-mnav .elementor-nav-menu--dropdown a.highlighted .sub-arrow svg { transform: rotate(90deg); }

/* ================================================================ FOOTER */
.m-ftr-logo a, .m-ftr-logo img { display: block; }
.m-ftr-logo img { width: 100%; max-width: 360px; height: auto; }   /* live: never wider than the 360px file (1024: 360, not 481) */
.m-ftr-links .elementor-icon-list-item > a { transition: color .3s linear; }
/* back to top (theratio #back-to-top): 42x45 #9F9E9E, fixed bottom right, shown after 500px */
.m-totop-w.elementor-widget { position: static; height: 0; }
a.m-totop {
	position: fixed; right: 40px; bottom: 20px; z-index: 1000; width: 42px; height: 45px;
	display: flex; align-items: center; justify-content: center; background: #9f9e9e; color: #fff;
	opacity: 0; visibility: hidden; transition: all .5s ease-in-out;
}
a.m-totop:hover, a.m-totop:focus { color: #fff; background: #9f9e9e; }
a.m-totop.is-shown { opacity: 1; visibility: visible; bottom: 40px; }
a.m-totop .m-ico { width: 17px; height: 17px; }

/* ================================================================ 404 (Theme Builder, Canvas layout) */
body .elementor-element.m-404.e-con { --position: relative; position: relative; color: #fff; text-align: center; }
.m-404 .elementor-element.m-404-logo { position: absolute; top: 0; left: 50%; transform: translateX(-50%); }
.m-404-logo a, .m-404-logo img { display: block; }
.m-404 .elementor-element.m-404-text, .m-404 .elementor-element.m-404-search { max-width: 100%; }
/* 404 search = the live theme form (HTML widget): 395px, transparent, 1px #E6E6E6 bottom line, Raleway 14/500 white,
   46x46 icon submit at the right end (review:chrome) */
.m-404-form { position: relative; margin: 0; }
.m-404-form label { display: block; margin: 0; }
.m-404 .m-404-form input.m-404-field {
	display: block; width: 100%; height: 46px; margin: 0; padding: 0 46px 0 10px; box-sizing: border-box;
	background: transparent; border: 0; border-bottom: 1px solid #e6e6e6; border-radius: 0; box-shadow: none; outline: 0;
	color: #fff; font-family: "Raleway", sans-serif; font-size: 14px; font-weight: 500; line-height: 14px;
}
.m-404 .m-404-form input.m-404-field::placeholder { color: #fff; opacity: 1; }
.m-404 .m-404-form input.m-404-field::-webkit-search-cancel-button { -webkit-appearance: none; }
.m-404 .m-404-form button.m-404-submit,
.m-404 .m-404-form button.m-404-submit:hover,
.m-404 .m-404-form button.m-404-submit:focus {
	position: absolute; top: 0; right: 0; width: 46px; height: 46px; margin: 0; padding: 0;
	display: flex; align-items: center; justify-content: center;
	background: transparent; border: 0; border-radius: 0; color: #fff; cursor: pointer; box-shadow: none;
}
.m-404 .m-404-form button.m-404-submit .m-ico { display: block; width: 18px; height: 18px; }
.m-404 .m-404-form button.m-404-submit .m-ico path { stroke-width: 3; }   /* live 404 glyph is bolder (~2.3px ring) */

/* == 20-templates.css == */
/* Theme Builder templates (owner: theme-templates): page-title band trail, blog layout + sidebar, cards, single post,
   portfolio grid / single, portfolio item content (drop cap, gallery, Go Back), search. Theme = theratio dark scheme.
   Reaches the site through build/kit_css.php. Never use the word s-e-l-e-c-t-o-r here. */

/* ---------------------------------------------------------------- band: breadcrumbs ([milano_breadcrumbs]) */
.m-crumbs-dyn .m-crumbs-list {
	display: flex; flex-wrap: wrap; justify-content: center; list-style: none; margin: 0; padding: 0;
	font-family: "Titillium Web", sans-serif; font-size: 14px; font-weight: 500; line-height: 26.25px;
	text-transform: uppercase; color: #fff; text-align: center;
}
.m-crumbs-dyn .m-crumbs-list li { position: relative; margin: 0 0 0 10px; padding: 0 0 0 24px; }
.m-crumbs-dyn .m-crumbs-list li:first-child { margin-left: 0; padding-left: 0; }
.m-crumbs-dyn .m-crumbs-list li::before {
	content: "••"; position: absolute; left: -2px; top: 8px; color: #fff;   /* literal, see 00-base.css (review:chrome) */
	font-family: "Josefin Sans", sans-serif; font-size: 14px; font-weight: 400; line-height: 1; letter-spacing: 4px;
}
.m-crumbs-dyn .m-crumbs-list li:first-child::before { display: none; }
.m-crumbs-dyn .m-crumbs-list a {
	color: #fff; background-image: linear-gradient(0deg, #7e7e7e, #f5f5f5); background-size: 0 2px;
	background-position: 0 88%; background-repeat: no-repeat; transition: all .3s linear;
	/* tap target 21 -> 25px (as .m-crumbs in 00-base.css): inline padding does not move the line,
	   content-box origin keeps the hover underline in place (final-report 26 Oct) */
	padding: 2px 0; background-origin: content-box;
}
.m-crumbs-dyn .m-crumbs-list a:hover, .m-crumbs-dyn .m-crumbs-list a:focus { color: #fff; background-size: 100% 2px; }
.m-tband .m-band-title .elementor-heading-title span { font: inherit; color: inherit; }

/* ---------------------------------------------------------------- blog layout (main col-lg-9 + sidebar col-lg-3) */
.e-con.m-blog-row > .e-con.m-blog-main, .e-con.m-blog-row > .e-con.m-blog-side { min-width: 0; }
@media (max-width: 991px) {
	.e-con.m-blog-row > .e-con.m-blog-main, .e-con.m-blog-row > .e-con.m-blog-side { --width: 100%; }
}

/* blog / search lists: every card keeps the theme 60px bottom margin (also the last one) */
.m-blog-loop .elementor-loop-container, .m-search-loop .elementor-loop-container { margin-bottom: 60px; }
.e-con .elementor-widget.m-blog-loop .elementor-pagination, .e-con .elementor-widget.m-search-loop .elementor-pagination { margin-top: 0; }

/* loop grids: theme pagination (ul.page-pagination) */
.m-loop .elementor-loop-container { align-items: start; }
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination {
	display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: flex-end; gap: 0; margin: 50px 0 0;
	font-family: "Titillium Web", sans-serif; font-size: 16px; font-weight: 600; line-height: 18px; text-align: left;
}
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination .page-numbers {
	display: block; min-width: 23px; margin: 0; padding: 7px; border-bottom: 2px solid #d8d8d8;
	color: #bfbfbf; text-align: center; transition: all .3s linear;
}
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination .page-numbers.current,
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination a.page-numbers:hover { color: #a3a3a3; border-bottom-color: #505050; }
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination span.page-numbers.prev,
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination span.page-numbers.next { display: none; }
/* the hidden "prev" span stays :first-child, so Elementor's spacing would push the first number by 4.5px */
body .e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination span.page-numbers.prev + .page-numbers { margin-left: 0; }
/* arrows: 12px thin arrow (theratio Flaticon right-arrow) drawn with a mask so it takes the link colour */
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination .page-numbers.prev,
.e-con .elementor-widget.elementor-widget.m-loop .elementor-pagination .page-numbers.next { min-width: 12px; font-size: 0; line-height: 0; }
.m-loop .elementor-pagination .page-numbers.prev::before,
.m-loop .elementor-pagination .page-numbers.next::before {
	content: ""; display: inline-block; width: 12px; height: 18px; background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 10%27%3E%3Cpath d=%27M0 5h11M7 1l4 4-4 4%27 fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.3%27/%3E%3C/svg%3E") center / 12px 10px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 10%27%3E%3Cpath d=%27M0 5h11M7 1l4 4-4 4%27 fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.3%27/%3E%3C/svg%3E") center / 12px 10px no-repeat;
}
.m-loop .elementor-pagination .page-numbers.prev::before { transform: scaleX(-1); }

/* ---------------------------------------------------------------- sidebar (template "Milano – Blog Sidebar") */
.m-side .m-side-w { width: 100%; }
.m-side .widget-title {
	position: relative; margin: 0 0 40px; padding: 0 0 12px; color: #fff;
	font-family: "Titillium Web", sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; text-transform: uppercase;
}
.m-side .widget-title::before {
	content: ""; position: absolute; left: 0; bottom: 0; width: 66px; height: 2px; border-bottom: 2px dotted #fff;
}
.m-side ul { list-style: none; margin: 0; padding: 0; }
/* theratio widget lists: li in Titillium 600 (same line box as the links), no margin under the last item */
.m-side li { font-family: "Titillium Web", sans-serif; font-weight: 600; }
.m-side .m-side-recent li:last-child, .m-side .m-side-boxes li:last-child { margin-bottom: 0; }
.m-side nav { display: block; }
/* core search block (button outside, text button) */
.m-side .wp-block-search__label {
	display: inline-block; margin: 0; font-family: "Titillium Web", sans-serif; font-size: 16px; font-weight: 400;
	line-height: 30px; color: #a3a3a3;
}
.m-side .wp-block-search__inside-wrapper { display: flex; align-items: stretch; width: 100%; }
.m-side .wp-block-search__input {
	flex: 1 1 auto; min-width: 0; height: 55px; margin: 0; padding: 8px 10px; background: transparent; color: #a3a3a3;
	border: 0; border-bottom: 1px solid #292929; border-radius: 0; font-family: "Raleway", sans-serif; font-size: 14px;
	font-weight: 500; line-height: 26.25px;
}
.m-side .wp-block-search__input:focus { outline: none; border-bottom-color: #a3a3a3; }
.m-side .wp-block-search .wp-block-search__button {
	flex: 0 0 auto; margin: 0 0 0 10px; padding: 12.672px 23.328px; height: 55px; border: 0; border-radius: 0;
	background: #32373c; color: #fff; font-family: "Titillium Web", sans-serif; font-size: 16px; font-weight: 400;
	line-height: 30px; letter-spacing: 0; text-transform: none; cursor: pointer;
}
.m-side .wp-block-search .wp-block-search__button:hover,
.m-side .wp-block-search .wp-block-search__button:focus { background: #32373c; color: #fff; border: 0; }
.m-side .elementor-widget-image.m-side-logo { text-align: left; }
.m-side .m-side-logo img { width: auto; max-width: 100%; height: auto; }   /* live widget_media_image: natural 360px, left (768: 360 not 720) */
/* categories + archive: boxed bars */
.m-side .m-side-boxes li { position: relative; margin: 0 0 10px; }
.m-side .m-side-boxes li a {
	display: block; padding: 10px 20px; background: #1a1a1a; color: #fff;
	font-family: "Titillium Web", sans-serif; font-size: 16px; font-weight: 600; line-height: 30px; text-transform: uppercase;
}
.m-side .m-side-boxes li a:hover { background: #fff; color: #1a1a1a; }
.m-side .m-side-boxes li .count {
	position: absolute; right: 20px; top: 50%; transform: translateY(-50%); pointer-events: none;
	font-family: "Josefin Sans", sans-serif; font-size: 16px; font-weight: 600; line-height: 1; color: #9f9e9e;
}
.m-side .m-side-boxes li:hover .count { color: #1a1a1a; }
/* recent posts */
.m-side .m-side-recent li { margin: 0 0 10px; }
.m-side .m-side-recent li a {
	color: #fff; font-family: "Titillium Web", sans-serif; font-size: 16px; font-weight: 600; line-height: 30px;
	background-image: linear-gradient(0deg, #4b4b4b, #f5f5f5); background-size: 0 2px; background-position: 0 90%;
	background-repeat: no-repeat; transition: all .3s linear;
}
.m-side .m-side-recent li a:hover { color: #fff; background-size: 100% 2px; }

/* ---------------------------------------------------------------- cards (loop items) */
.e-con.m-card { border: 1px solid #292929; background-color: #0a0a0a; transition: border-color .3s linear; }
.e-con.m-card--blog:hover, .e-con.m-card--search:hover, .e-con.m-card--related:hover { border-color: #fff; }
.e-con.m-card-media { --position: relative; position: relative; margin-bottom: 34px; }
.m-card-img { text-align: left; }
.m-card-img a { display: block; width: fit-content; max-width: 100%; }
.m-card-img img { display: block; max-width: 100%; height: auto; }
.m-card-img--full img { width: 100%; }
.e-con .elementor-widget.elementor-widget.m-cats {
	position: absolute; left: 0; bottom: 0; z-index: 1; width: auto; max-width: 100%; margin: 0 0 -10px;
}
.elementor-widget.m-cats .elementor-heading-title { font-size: 0; line-height: 0; }
.elementor-widget.m-cats .elementor-heading-title a {
	display: inline-block; margin: 0 7px 10px 0; padding: 8px 10px; background: #1a1a1a; color: #fff;
	font-family: "Titillium Web", sans-serif; font-size: 13px; font-weight: 600; line-height: 14.3px;
	letter-spacing: .6px; text-transform: uppercase;
}
.elementor-widget.m-cats .elementor-heading-title a:hover { background: #f5f5f5; color: #1a1a1a; }
.e-con .elementor-widget.elementor-widget.m-card-date { margin-bottom: 8px; }
.elementor-widget.m-card-date .elementor-heading-title a:hover { color: #fff; }
.e-con .elementor-widget.elementor-widget.m-card-title { margin-bottom: 12px; }
.elementor-widget.m-card-title .elementor-heading-title a { display: inline; }
.m-card-excerpt p { margin: 0 0 16px; }
.m-card--search .m-card-excerpt p:last-child { margin-bottom: 16px; }
.m-card-more { line-height: 13px; }
.m-card-more .elementor-button { font-size: 13px; line-height: 13px; }
/* related post card */
.e-con.m-card--related > .e-con.m-card-media { margin-bottom: 23px; }
.e-con.m-card-meta { margin-bottom: 8px; }
.e-con.m-card-meta > .elementor-widget.elementor-widget.m-card-date { margin: 0; width: auto; }
.m-card-meta .m-card-author .elementor-heading-title::before {
	content: "••"; display: inline-block; margin: 0 10px; color: #9f9e9e; letter-spacing: 2px;   /* literal (review:chrome) */
}
.e-con.m-card--related > .elementor-widget.elementor-widget.m-card-title { margin-bottom: 15px; }
.m-card--related .m-card-excerpt p { margin: 0; }
.m-sp-sec .m-card--related .m-card-meta a { color: #fff; }

/* ---------------------------------------------------------------- single post */
.e-con.m-sp-media { margin-bottom: 34px; }
.e-con .elementor-widget.elementor-widget.m-sp-date { margin-bottom: 8px; }
.m-post-content { padding-bottom: 50px; }
.m-post-content p { margin: 0 0 20px; }
.m-post-content p:last-child { margin-bottom: 0; }
.m-post-content h2, .m-post-content h3, .m-post-content h4, .m-post-content h5, .m-post-content h6 {
	margin: 0 0 20px; color: #fff; font-family: "Titillium Web", sans-serif; font-weight: 400; line-height: 1.4;
}
.m-post-content h2 { font-size: 42px; }
.m-post-content h3 { font-size: 36px; }
.m-post-content h4 { font-size: 30px; }
.m-post-content strong, .m-post-content b { font-weight: 700; }
.m-post-content a, .m-post-content a:hover { color: #fff; }
.m-post-content ul, .m-post-content ol { margin: 0 0 20px; padding-left: 18px; }
.m-post-content img { max-width: 100%; height: auto; }
/* share circles ([milano_share], theratio .share-post): 30px circles, white brand glyphs, brand colour on hover */
.e-con .elementor-widget.elementor-widget.m-sp-share { padding-bottom: 40px; margin-bottom: 30px; border-bottom: 1px solid rgba(0, 0, 0, .1); }
.m-share-list { display: flex; justify-content: flex-end; gap: 10px; margin: 0; padding: 0; list-style: none; line-height: 1; }
.m-share-list a {
	display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid #e0e0e0;
	border-radius: 50%; background: transparent; color: #fff; transition: all .3s linear;
}
.m-share-list svg { width: 14px; height: 14px; fill: currentColor; }
.m-share-list .twit:hover { background: #44b1e4; border-color: #44b1e4; }
.m-share-list .face:hover { background: #4661c5; border-color: #4661c5; }
.m-share-list .pint:hover { background: #ff2e2e; border-color: #ff2e2e; }
.m-share-list .linked:hover { background: #0073b0; border-color: #0073b0; }
@media (max-width: 767px) {
	.m-share-list { justify-content: flex-start; }
	.e-con .elementor-widget.elementor-widget.m-sp-share { padding-top: 20px; }
}

/* prev / next ([milano_post_nav]) — theratio .post-nav float layout: 75px thumb floated, text wraps around it (the
   date line drops under the thumb when the title is taller than 75px), arrow hidden in the -40px margin, slides in on
   hover; on phones no thumb, arrow always visible */
.m-post-nav { margin: 0 0 50px; overflow: hidden; }
.m-post-nav > div { width: 380px; max-width: calc(50% + 40px); transition: margin .3s linear; }   /* live: 380 at every width >= 768 (the -40px margins give the room); 50% made it 349-360 at 768-1229 (review:mobile-seo) */
.m-post-nav .m-post-prev { float: left; margin-left: -40px; }
.m-post-nav .m-post-next { float: right; margin-right: -40px; }
.m-post-nav .m-post-prev:hover { margin-left: 0; }
.m-post-nav .m-post-next:hover { margin-right: 0; }
.m-post-nav a { position: relative; display: block; min-height: 75px; color: #fff; }
.m-post-nav .m-post-prev a { padding-left: 40px; }
.m-post-nav .m-post-next a { padding-right: 40px; text-align: right; }
.m-post-nav a::before {
	content: ""; position: absolute; left: 0; top: 50%; width: 20px; height: 14px; margin-top: -7px;
	background: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 14%27%3E%3Cpath d=%27M7 1L1 7l6 6M1 7h19%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%271.4%27/%3E%3C/svg%3E") center / 20px 14px no-repeat;
}
.m-post-nav .m-post-next a::before { left: auto; right: 0; transform: scaleX(-1); }
.m-pn-thumb { display: block; float: left; width: 75px; margin: 0 20px 0 0; }
.m-post-next .m-pn-thumb { float: right; margin: 0 0 0 20px; }
.m-pn-thumb img { display: block; width: 75px; height: 75px; object-fit: cover; }
.m-pn-info { display: block; line-height: 16px; }
.m-pn-title { display: block; margin: 0 0 11px; color: #fff; font-family: "Titillium Web", sans-serif; font-size: 18px; font-weight: 400; line-height: 24px; }
.m-pn-t {
	background-image: linear-gradient(0deg, #4b4b4b, #f5f5f5); background-size: 0 2px; background-position: 0 90%;
	background-repeat: no-repeat; transition: all .3s linear;
}
.m-post-nav a:hover .m-pn-t { background-size: 100% 2px; }
.m-pn-line { display: inline-block; color: #9f9e9e; font-family: "Josefin Sans", sans-serif; font-size: 12px; font-weight: 400; line-height: 12px; text-transform: uppercase; }
.m-pn-w--pf .m-post-nav { margin: 0; padding-top: 42px; }
/* portfolio bottom section = column flex container WITH wrap: Chrome sizes the widget's height at its fit-content width,
   so on phones the first / last item (only one floated 50% cell) got 68-84px of empty space under the nav (sweep:portfolio) */
.e-con .elementor-widget.elementor-widget.m-pn-w--pf { width: 100%; }
@media (max-width: 767px) {
	.m-pn-thumb { display: none; }
	.m-post-nav > div, .m-post-nav .m-post-prev, .m-post-nav .m-post-next,
	.m-post-nav .m-post-prev:hover, .m-post-nav .m-post-next:hover { width: 50%; max-width: 50%; margin-left: 0; margin-right: 0; }
}

/* related posts */
.e-con.m-related { margin-bottom: 90px; }
.e-con .elementor-widget.elementor-widget.m-related-title { margin-bottom: 30px; }
.m-related-loop .elementor-loop-container { align-items: start; }
@media (max-width: 767px) { .e-con.m-related { margin-bottom: 108px; } }

/* comments (milano-core templates/comments.php) */
.m-comments .comment-reply-title {
	margin: 0 0 20px; color: #fff; font-family: "Titillium Web", sans-serif; font-size: 36px; font-weight: 400; line-height: 50.4px;
}
.m-comments .comment-reply-title small { display: block; font-size: 14px; }
.m-comments .comment-reply-title small a { color: #9f9e9e; }
.m-comments .comment-respond { padding-top: 10px; }
.m-comments .comment-form p.comment-notes, .m-comments .comment-form p.logged-in-as { margin: 0 0 10px; color: #a3a3a3; font-size: 16px; line-height: 16px; }
.m-comments .logged-in-as a { color: #fff; }
.m-comments .comment-form p { margin: 0 0 20px; }
.m-comments .comment-form textarea,
.m-comments .comment-form input[type=text],
.m-comments .comment-form input[type=email] {
	display: block; width: 100%; padding: 8px 10px; background: transparent; color: #a3a3a3; border: 0;
	border-bottom: 1px solid #292929; border-radius: 0; font-family: "Raleway", sans-serif; font-size: 14px;
	font-weight: 500; line-height: 26.25px;
}
.m-comments .comment-form textarea { height: 130px; resize: vertical; }
.m-comments .comment-form textarea::placeholder, .m-comments .comment-form input::placeholder { color: #a3a3a3; text-transform: uppercase; }
.m-comments .m-cf-row { display: flex; gap: 30px; }
.m-comments .m-cf-row > p { flex: 1 1 0; min-width: 0; }
.m-comments .comment-form p.comment-form-cookies-consent { margin-bottom: 20px; }
.m-comments .comment-form-cookies-consent { display: block; color: #a3a3a3; font-size: 16px; line-height: 16px; }
/* live: checkbox margin 0, label inline + 8px left (Hello's label{display:inline-block} put the text on its own line at <=414px) */
.m-comments .comment-form-cookies-consent input { margin: 0; }
.m-comments .comment-form-cookies-consent label { display: inline; vertical-align: baseline; margin-left: 8px; line-height: 16px; }
.m-comments .comment-form p.form-submit { margin: 0; padding-bottom: 10px; }
.m-comments .form-submit .m-cf-submit {
	display: inline-block; max-width: 100%; padding: 18px 41px; border: 1px solid #1a1a1a; border-radius: 0;
	background: #1a1a1a; color: #fff; font-family: "Titillium Web", sans-serif; font-size: 13px; font-weight: 600;
	line-height: 1.42857; letter-spacing: .5px; text-transform: uppercase; cursor: pointer; transition: all .3s linear;
}
.m-comments .form-submit .m-cf-submit:hover, .m-comments .form-submit .m-cf-submit:focus { background: #fff; color: #1a1a1a; border-color: #fff; }
.m-comments .comment-list { list-style: none; margin: 0 0 40px; padding: 0; color: #a3a3a3; }
@media (max-width: 767px) {
	.m-comments .comment-reply-title { font-size: 30px; line-height: 42px; }
	.m-comments .m-cf-row { flex-direction: column; gap: 0; }
	.m-comments .form-submit .m-cf-submit { padding: 15px 28px; font-size: 12px; }
}

/* ---------------------------------------------------------------- search */
.e-con .elementor-widget.elementor-widget.m-noresults-title { margin-bottom: 10px; }
.e-con .elementor-widget.elementor-widget.m-noresults-text { margin-bottom: 20px; }
.m-noresults-form .elementor-search-form__container { border: 0; border-bottom: 1px solid #292929; border-radius: 0; background: transparent; min-height: 46px; }
.m-noresults-form .elementor-search-form__input,
.m-noresults-form input[type=search].elementor-search-form__input {
	background: transparent; color: #a3a3a3; border: 0; padding: 0 10px; font-family: "Raleway", sans-serif; font-size: 14px; font-weight: 500;
}
.m-noresults-form .elementor-search-form__input::placeholder { color: #a3a3a3; opacity: 1; }   /* Elementor default .6; live 1 (review:mobile-seo) */
.m-noresults-form .elementor-search-form__submit,
.m-noresults-form button.elementor-search-form__submit {
	background: transparent; color: #a3a3a3; border: 0; padding: 0; min-width: 46px; font-size: 17px;
}
.m-noresults-form .elementor-search-form__submit:hover,
.m-noresults-form button.elementor-search-form__submit:focus { background: transparent; color: #fff; border: 0; }
.m-noresults-form .elementor-search-form__submit svg { fill: currentColor; }

/* ---------------------------------------------------------------- portfolio tile (grid, related projects) */
.e-con.m-pf-tile { --position: relative; position: relative; overflow: hidden; }
.m-pf-img img { display: block; width: 100%; height: auto; aspect-ratio: 720 / 447; object-fit: cover; }
.m-pf-grid .m-tile-square .m-pf-img img,
.m-pf-related .m-tile-square .m-pf-img img { aspect-ratio: 1 / 1; }   /* related carousel too: live shows Curb Appeal as a 370x370 tile under Outdoor Living Space (sweep:portfolio) */
.e-con.m-pf-info {
	--position: absolute; position: absolute; inset: 0; z-index: 2; padding: 0 25px; background: rgba(10, 10, 10, .8);
	opacity: 0; transition: opacity .3s linear;
}
.m-pf-tile:hover .e-con.m-pf-info, .m-pf-tile:focus-within .e-con.m-pf-info { opacity: 1; }
.m-pf-info .elementor-widget { position: static; }
.e-con .elementor-widget.elementor-widget.m-pf-title { margin-bottom: 17px; }
.elementor-widget.m-pf-title .elementor-heading-title { position: static; }
.elementor-widget.m-pf-title .elementor-heading-title a { position: static; }
.elementor-widget.m-pf-title .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.elementor-widget.m-pf-cats .elementor-heading-title a { position: relative; z-index: 2; display: inline-block; margin: 0 5px; color: #9f9e9e; }
.elementor-widget.m-pf-cats .elementor-heading-title a::before { content: "["; margin-right: 5px; }
.elementor-widget.m-pf-cats .elementor-heading-title a::after { content: "]"; margin-left: 5px; }
.elementor-widget.m-pf-cats .elementor-heading-title a:hover { color: #fff; }
@media (max-width: 767px) {
	.m-pf-tile:hover .e-con.m-pf-info, .m-pf-tile:focus-within .e-con.m-pf-info { opacity: 0; }
}

/* ---------------------------------------------------------------- /portfolio/ + /portfolio-category/ grid */
.m-pf-grid .elementor-loop-container { gap: 0; align-items: start; }
@media (min-width: 601px) and (max-width: 991px) {
	.e-con .elementor-widget.elementor-widget.m-pf-grid .elementor-loop-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.e-con .elementor-widget.elementor-widget.m-pf-grid .elementor-loop-container { grid-template-columns: minmax(0, 1fr); }
}
/* theratio .content-area margin-bottom 60px under the grid at <=991px */
@media (max-width: 991px) { .e-con.m-pf-sec { margin-bottom: 60px; } }
/* filter bar ([milano_portfolio_filter]) */
.e-con .elementor-widget.elementor-widget.m-pf-filter-w { margin-bottom: 30px; }
/* theratio .project_filters: centred inline-block items (whitespace between them), li margin 0 28px 5px, first 0 28px 5px 0 */
ul.m-pf-filter { display: block; list-style: none; margin: 0; padding: 0; text-align: center; }
ul.m-pf-filter li { position: relative; display: inline-block; margin: 0 28px 5px; }
ul.m-pf-filter li:first-child { margin-left: 0; }
ul.m-pf-filter li:last-child { margin-right: 0; }
ul.m-pf-filter li button.m-pf-btn {
	position: relative; z-index: 0; display: inline-block; margin: 0; padding: 0; border: 0; border-radius: 0;
	background: transparent; color: #fff; cursor: pointer; font-family: "Titillium Web", sans-serif; font-size: 14px;
	font-weight: 600; line-height: 26.25px; letter-spacing: .5px; text-transform: uppercase; text-align: center;
}
ul.m-pf-filter li button.m-pf-btn::before {
	content: ""; position: absolute; left: -7px; bottom: 4px; z-index: -1; width: 0; height: 12px; background: #505050;
	transition: width .6s cubic-bezier(.68, -.55, .265, 1.55);
}
ul.m-pf-filter li button.m-pf-btn:hover, ul.m-pf-filter li button.m-pf-btn:focus { background: transparent; color: #fff; border: 0; }
ul.m-pf-filter li button.m-pf-btn:hover::before, ul.m-pf-filter li button.m-pf-btn.selected::before { width: calc(100% + 14px); }
ul.m-pf-filter .m-pf-count {
	position: absolute; top: -8px; right: -9px; color: #828282; font-size: 11px; font-weight: 400; line-height: 1;
	letter-spacing: 0; opacity: 0; transition: opacity .3s linear;
}
ul.m-pf-filter li button.m-pf-btn.selected .m-pf-count, ul.m-pf-filter li button.m-pf-btn:hover .m-pf-count { opacity: 1; }
@media (max-width: 600px) { ul.m-pf-filter li { margin: 0 10px 5px; } ul.m-pf-filter li:first-child { margin-left: 0; } ul.m-pf-filter li:last-child { margin-right: 0; } }
/* Load More */
.e-con .elementor-widget.elementor-widget.m-pf-more { margin-top: 60px; }
.m-pf-more.is-loading .elementor-button-text::after {
	content: ""; display: inline-block; width: 11px; height: 11px; margin-left: 8px; vertical-align: -1px;
	border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: m-spin .8s linear infinite;
}
@keyframes m-spin { to { transform: rotate(360deg); } }

/* ---------------------------------------------------------------- portfolio single: share bar, related projects */
.m-ssb .elementor-grid { justify-content: center; }
.m-ssb .elementor-share-btn {
	height: 20px; padding: 0 6px 0 4px; border-radius: 3px; font-family: Helvetica, Arial, sans-serif; font-size: 11px;
	font-weight: 400; line-height: 20px; color: #fff; overflow: visible; cursor: pointer;
}
.m-ssb .elementor-share-btn .elementor-share-btn__icon { width: auto; min-width: 14px; margin-right: 4px; background: transparent; }
.m-ssb .elementor-share-btn .elementor-share-btn__icon svg { fill: #fff; width: 12px; height: 12px; }
.m-ssb .elementor-share-btn .elementor-share-btn__icon i { font-size: 12px; color: #fff; }
.m-ssb .elementor-share-btn .elementor-share-btn__text { padding: 0; background: transparent; }
.m-ssb .elementor-share-btn .elementor-share-btn__title { font-size: 11px; font-weight: 700; color: #fff; text-transform: none; letter-spacing: 0; }
.m-ssb .elementor-share-btn_facebook { background: #4267b2; }
.m-ssb .elementor-share-btn_x-twitter { background: #0f1419; }
.m-ssb .elementor-share-btn_pinterest { background: #bd081c; border-radius: 2px; }
.m-ssb .elementor-share-btn_whatsapp { background: #34af23; }
.m-ssb .elementor-share-btn:hover { filter: brightness(1.1); }
/* live (Simple Social Buttons "mobile hidden") hides the bar up to 768px incl. -> at exactly 768 the whole 51px block is gone;
   Elementor hidden-mobile stops at 767 (review:mobile-seo) */
@media (max-width: 768px) { body .elementor-element.e-con.m-ssb-sec { --display: none; display: none; } }
.e-con .elementor-widget.elementor-widget.m-pf-related-title { padding-top: 70px; margin-bottom: 30px; }
/* fewer items than slides per view: Elementor leaves Swiper uninitialised -> keep the 3 / 2 / 1 column widths */
.m-pf-related .swiper:not(.swiper-initialized) .swiper-slide { width: calc((100% - 60px) / 3); flex-shrink: 0; }
.m-pf-related .swiper:not(.swiper-initialized) .swiper-slide:not(:last-child) { margin-right: 30px; }
@media (max-width: 1024px) { .m-pf-related .swiper:not(.swiper-initialized) .swiper-slide { width: calc((100% - 30px) / 2); } }
@media (max-width: 767px) { .m-pf-related .swiper:not(.swiper-initialized) .swiper-slide { width: 100%; } }
/* theratio dots: 30px hit area, 4px white dot, ring around the active one */
.e-con .elementor-widget.m-pf-related .swiper-pagination-bullet {
	position: relative; width: 30px; height: 30px; margin: 0; border: 1px solid transparent; border-radius: 50%;
	background: transparent; opacity: 1; transition: border-color .3s linear;
}
.m-pf-related .swiper-pagination-bullet::before {
	content: ""; position: absolute; left: 50%; top: 50%; width: 4px; height: 4px; margin: -2px 0 0 -2px; border-radius: 50%; background: #fff;
}
.e-con .elementor-widget.m-pf-related .swiper-pagination-bullet-active { border-color: #fff; background: transparent; }
@media (min-width: 1025px) {
	.m-pf-related .swiper-pagination { display: none; }
	.e-con .elementor-widget.elementor-widget.m-pf-related .swiper { padding-bottom: 0; }
}
/* <=1024px: dots 30px under the slide, 34px below them (theratio project-slider) */
@media (max-width: 1024px) {
	.e-con .elementor-widget.elementor-widget.m-pf-related .swiper { padding-bottom: 0; }
	/* only when there are dots (one related item = no carousel, no dots, no space on live) */
	.e-con .elementor-widget.elementor-widget.m-pf-related:has(.swiper-pagination:not(.swiper-pagination-lock) .swiper-pagination-bullet) .swiper { padding-bottom: 94px; }
	.e-con .elementor-widget.elementor-widget.m-pf-related .swiper-pagination { top: auto; bottom: 34px; transform: translate(-50%, 0); }
}
/* the share bar is hidden on phones (live Simple Social Buttons): drop its section too */
@media (max-width: 767px) { .e-con.m-ssb-sec { display: none; } }

/* ---------------------------------------------------------------- portfolio item content (portfolio_items.php) */
.m-pi-intro .elementor-drop-cap {
	float: left; width: 42px; height: 42px; margin: 8px 18px 0 0; background: #0a0a0a; text-align: center;
	font-size: 50px; line-height: 50px;
}
.m-pi-intro .elementor-drop-cap .elementor-drop-cap-letter {
	display: block; width: 42px; height: 42px; border: 1px solid #fff; color: #fff;
	font-family: "Titillium Web", sans-serif; font-size: 24px; font-weight: 700; line-height: 40px;
}
.m-pi-intro p { margin: 0 0 20px; }
.m-pi-intro p:last-child { margin-bottom: 0; }
@media (max-width: 1024px) { .m-pi-intro { padding-bottom: 40px; } }
/* gallery (Basic Gallery = WP gallery markup, like theratio igimages) */
.m-pi-gallery .gallery-item img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.m-pi-gallery .gallery-icon a { position: relative; display: block; overflow: hidden; }
.m-pi-gallery .gallery-icon a::before {
	content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .4); opacity: 0; transition: opacity .3s linear;
}
.m-pi-gallery .gallery-icon a::after {
	content: ""; position: absolute; left: 50%; top: 50%; z-index: 2; width: 60px; height: 60px; margin: -30px 0 0 -30px;
	border-radius: 50%; opacity: 0; transition: all .3s linear;
	background:
		linear-gradient(#fff, #fff) center / 20px 2px no-repeat,
		linear-gradient(#fff, #fff) center / 2px 20px no-repeat,
		#000;
}
.m-pi-gallery .gallery-icon a:hover::before, .m-pi-gallery .gallery-icon a:hover::after { opacity: 1; }
.m-pi-gallery .gallery-icon a:hover::after { transform: rotate(90deg); }
/* 3 columns, 30px gaps (15px <=1024), 1 column edge to edge <=600 (theratio); beats Elementor gallery-columns rules.
   The wrapper clips the negative right / bottom margin (empty gutter) so the row never causes a horizontal scroll */
.m-pi-gallery .elementor-image-gallery { overflow: hidden; }
.e-con .elementor-widget.elementor-widget.m-pi-gallery .elementor-image-gallery .gallery { display: flex; flex-wrap: wrap; margin: 0 -30px -30px 0; }
.e-con .elementor-widget.elementor-widget.m-pi-gallery .elementor-image-gallery .gallery .gallery-item { width: 33.333%; max-width: 33.333%; margin: 0; padding: 0 30px 30px 0; }
@media (max-width: 1024px) {
	.e-con .elementor-widget.elementor-widget.m-pi-gallery .elementor-image-gallery .gallery { margin: 0 -15px -15px 0; }
	.e-con .elementor-widget.elementor-widget.m-pi-gallery .elementor-image-gallery .gallery .gallery-item { padding: 0 15px 15px 0; }
}
@media (max-width: 600px) {
	.e-con .elementor-widget.elementor-widget.m-pi-gallery .elementor-image-gallery .gallery { margin: 0 0 -15px; }
	.e-con .elementor-widget.elementor-widget.m-pi-gallery .elementor-image-gallery .gallery .gallery-item { width: 100%; max-width: 100%; padding: 0 0 15px; }
}
/* Go Back */
.elementor-widget-button.m-goback .elementor-button { font-size: 20px; line-height: 1.42857; }

/* == 30-refine.css == */
/* ======================================================================================================================
   30-refine.css — visual refinement layer (2 Nov 2026, user-approved; docs/proposals/ai-look-2026-11.md)
   Rule: no text changes, nothing removed — only the look. The former text-in-image infographics (About Us, Process, home
   "Our Working Process") speak the site's own language; decorative ghost numerals and thin grid lines are gone.
   Tokens: ink #0A0A0A · graphite #1A1A1A · stone #F1F0F0 · line #292929 · mist #A3A3A3 · ash #9F9E9E · white.
   Type (3 Nov, see "typography" below): Titillium Web 600 titles (42/48, phones 27/38) + Raleway 500 copy, 17px / 1.8
   (phones 16px), mid-grey copy on dark lifted to #CDCDCD. Rhythm: sections 110px (phones 70px),
   content 1170px, grid gap 30px, 1px frames, no shadows.
   Loaded through the Kit (before each page's own CSS), hence the !important on what overrides page / widget settings.
   ====================================================================================================================== */

/* ---------------------------------------------------------------- shared: no theme grid lines, no ghost numerals */
.m-lines::after,
.e-con.m-p-home.m-vid::after,
.e-con.m-p-home.m-blog::after,
.m-p-home .m-hero-slide::after { background: none !important; }
.m-p-home .m-svc-card .elementor-image-box-title::after,
.m-p-home .m-svc-card .elementor-image-box-wrapper::before,
.m-p-home .m-svc-card .elementor-image-box-wrapper::after,
.m-p-our-services .m-os-card::after { content: none !important; display: none !important; }
.m-p-our-services .m-os-num { display: none !important; }

/* shared title treatment for the refined sections: Titillium 600, white (or ink on stone); no dotted rule (3 Nov) */
.m-au-intro .m-au-intro-title .elementor-heading-title,
.m-au-wwd > .elementor-widget-heading .elementor-heading-title,
.m-au-hww .m-au-hww-title .elementor-heading-title,
.m-au-wtu .m-au-wtu-head .elementor-heading-title,
.m-pp-s1c h2.elementor-heading-title,
.m-pp-s2c h2.elementor-heading-title,
.m-p-home .elementor-widget.m-proc-title .elementor-heading-title {
	font-family: "Titillium Web", sans-serif !important; font-weight: 600 !important; font-style: normal !important;
	font-size: 42px !important; line-height: 48px !important; letter-spacing: 0 !important; word-spacing: normal !important;
	text-shadow: none !important; color: #fff !important; position: relative; padding-bottom: 0;
}

/* ---------------------------------------------------------------- About Us */
.m-p-about-us .elementor-icon svg { fill: currentColor; }
/* S1 intro on a white band (as the original image): the team photo's white ground is the band itself, no box edges */
.m-p-about-us.m-au-intro { background: #FFFFFF !important; padding: 110px 15px !important; }
.m-au-intro .m-au-intro-in { min-height: 0 !important; max-width: 1170px !important; flex-direction: row !important; align-items: center !important; gap: 70px !important; }
.m-au-intro .m-au-intro-text { width: auto !important; flex: 1 1 0 !important; padding: 0 !important; }
.m-p-about-us.m-au-intro .m-au-intro-in .m-au-intro-text > .m-au-intro-title { width: auto !important; margin: 0 0 30px !important; }
.m-au-intro .m-au-intro-title .elementor-heading-title { color: #1A1A1A !important; }
.m-au-intro .m-au-intro-copy, .m-au-intro .m-au-intro-copy p { font-family: Raleway, sans-serif !important; font-size: 17px !important; line-height: 1.8 !important; font-weight: 500 !important; color: #555 !important; }
.m-au-intro .m-au-intro-copy p { margin: 0 0 20px !important; }
.m-au-intro .m-au-intro-copy p:last-child { margin-bottom: 0 !important; }
.m-au-intro .m-au-intro-copy strong { color: #1A1A1A; font-weight: 700; }
.m-au-intro .m-au-intro-in > .m-au-intro-photo { position: static !important; width: auto !important; flex: 1.1 1 0 !important; }
/* S2 What we do — ink band, three graphite cards */
.m-p-about-us.m-au-wwd { background: #0A0A0A !important; box-shadow: none !important; padding: 110px 15px !important; }
.m-au-wwd > .elementor-widget-heading { margin: 0 0 60px !important; padding: 0 !important; }
.m-au-wwd .m-au-wwd-cards::after { display: none !important; }
.m-p-about-us.m-au-wwd > .m-au-wwd-cards { max-width: 1170px !important; margin: 0 auto !important; gap: 30px !important; }
.m-au-wwd .m-au-wwd-card { background: #1A1A1A !important; border: 1px solid #292929 !important; box-shadow: none !important; padding: 50px 30px !important; }
.m-au-wwd .m-au-wwd-card .m-au-slot { height: 80px !important; }
.m-au-wwd .m-au-wwd-card .elementor-icon { font-size: 64px !important; color: #fff !important; }
.m-au-wwd .m-au-wwd-map img { width: 130px !important; }
.m-au-wwd .m-au-wwd-card .elementor-widget-heading { margin: 26px 0 14px !important; }
.m-au-wwd .m-au-wwd-card .elementor-heading-title { font-family: "Titillium Web", sans-serif !important; font-weight: 600 !important; font-size: 24px !important; line-height: 32px !important; letter-spacing: 0 !important; color: #fff !important; }
.m-au-wwd .m-au-wwd-list .elementor-icon-list-item, .m-au-wwd .m-au-wwd-list .elementor-icon-list-text { font-family: Raleway, sans-serif !important; font-size: 17px !important; line-height: 30px !important; font-weight: 500 !important; color: #CDCDCD !important; }
.m-au-wwd .m-au-wwd-list .elementor-icon-list-icon i, .m-au-wwd .m-au-wwd-list .elementor-icon-list-icon svg { color: #9F9E9E !important; fill: #9F9E9E !important; font-size: 5px !important; width: 5px !important; }
.m-au-wwd .m-au-wwd-list .elementor-icon-list-items { left: 0 !important; }
/* S3 How we work — graphite band, a real sequence: framed steps joined by a thin dashed arrow */
.m-p-about-us.m-au-hww { background: #1A1A1A !important; box-shadow: none !important; padding: 110px 15px !important; }
.m-au-hww .m-au-hww-title { margin: 0 0 60px !important; }
.m-au-hww .m-au-hww-cards::after, .m-au-hww .m-au-hww-card::after { display: none !important; }
.m-p-about-us.m-au-hww > .m-au-hww-cards { max-width: 1170px !important; margin: 0 auto !important; gap: 30px !important; }
.m-au-hww .m-au-hww-card { box-shadow: none !important; }
.m-au-hww .m-au-hww-face { position: relative; background: #0A0A0A !important; border: 1px solid #292929 !important; min-height: 0 !important; padding: 46px 20px 42px !important; }
.m-au-hww .m-au-hww-face .m-au-slot { height: 76px !important; }
.m-au-hww .elementor-icon { color: #fff !important; font-size: 58px !important; }
.m-au-hww .m-au-ico-strip .elementor-icon { font-size: 38px !important; }
.m-au-hww .m-au-hww-face .elementor-widget-heading { margin: 24px 0 0 !important; }
.m-au-hww .m-au-hww-face .elementor-heading-title { font-family: "Titillium Web", sans-serif !important; font-weight: 600 !important; font-size: 22px !important; line-height: 30px !important; letter-spacing: 0 !important; color: #fff !important; }
.m-au-hww .m-au-hww-card:not(:last-child) .m-au-hww-face::after,
.m-au-hww .m-au-hww-card:nth-child(3) .m-au-hww-face::after {
	left: calc(100% + 1px) !important; top: 50% !important; width: 30px !important; height: 10px !important; transform: translateY(-50%) !important;
	background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2010%22%3E%3Cpath%20d%3D%22M0%205H26%22%20stroke%3D%22%23505050%22%20stroke-width%3D%221%22%20stroke-dasharray%3D%222%203%22%2F%3E%3Cpath%20d%3D%22M24%201L29%205L24%209%22%20fill%3D%22none%22%20stroke%3D%22%23505050%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat !important;
}
.m-au-hww .m-au-arr { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2027%2015%22%3E%3Cpath%20d%3D%22M0%207.5H23.5M13.6%201.6L23.6%207.5L13.6%2013.4%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E") !important; }
/* S4 Why clients trust us — ink band, one graphite panel with hairline column rules */
.m-p-about-us.m-au-wtu { background: #0A0A0A !important; padding: 110px 15px !important; }
.m-au-wtu .m-au-wtu-in { background: transparent !important; padding: 0 !important; max-width: 1170px !important; }
.m-au-wtu .m-au-wtu-head { padding: 0 0 60px !important; background-image: none !important; }
.m-au-wtu .m-au-wtu-panel { border: 1px solid #292929 !important; background: #1A1A1A; padding: 0 !important; }
.m-au-wtu .m-au-wtu-panel > .m-au-wtu-col { padding: 46px 20px 42px; }
.m-au-wtu .m-au-wtu-panel > .m-au-wtu-col + .m-au-wtu-col { border-left: 1px solid #292929 !important; }
.m-au-wtu .elementor-icon-box-icon { height: 64px !important; margin-bottom: 22px !important; }
.m-au-wtu .elementor-icon { font-size: 50px !important; color: #fff !important; }
.m-au-wtu .elementor-icon-box-title, .m-au-wtu .elementor-icon-box-title * { font-family: "Titillium Web", sans-serif !important; font-weight: 600 !important; font-size: 22px !important; line-height: 30px !important; letter-spacing: 0 !important; color: #fff !important; }
.m-au-wtu .elementor-icon-box-title { max-width: none !important; margin-bottom: 8px !important; }
.m-au-wtu .elementor-icon-box-description { font-family: Raleway, sans-serif !important; font-size: 17px !important; line-height: 28px !important; font-weight: 500 !important; letter-spacing: 0 !important; color: #CDCDCD !important; }

/* icon sizes in px on the SVG itself (the Icon widget writes the --u scaled height straight onto the svg, which grew past
   the icon slot and over the titles at wide screens — user screenshot, 2 Nov) */
.m-au-wwd .m-au-wwd-card .elementor-icon svg { height: 64px !important; width: auto !important; max-width: 100%; }
.m-au-wwd .m-au-wwd-map img { width: 120px !important; height: auto !important; }
.m-au-hww .m-au-hww-face .elementor-icon svg { height: 58px !important; width: auto !important; max-width: 100%; }
.m-au-hww .m-au-ico-strip .elementor-icon svg { height: 38px !important; width: auto !important; max-width: 100%; }
.m-au-wtu .elementor-icon-box-icon .elementor-icon svg { height: 50px !important; width: auto !important; max-width: 100%; }
.m-au-wwd .m-au-slot, .m-au-hww .m-au-slot { overflow: hidden; }

/* ---------------------------------------------------------------- Process page */
.m-p-process.m-pp-s1, .m-p-process.m-pp-s2 { background-color: #0A0A0A !important; }
.m-p-process.m-pp-s1 { padding-top: 80px !important; }
.m-pp-s1c, .m-pp-s2c { background-color: #0A0A0A !important; background-image: none !important; }
.m-pp-s2c::before { background-image: none !important; opacity: 0 !important; }
.m-pp-villa { display: none !important; }
.m-pp-s1c .m-pp-frame, .m-pp-s2c .m-pp-wframe, .m-pp-s2c .m-pp-fframe { background-color: transparent !important; border-color: #292929 !important; border-width: 1px !important; }
.m-pp-s1c .elementor-widget-heading .elementor-heading-title,
.m-pp-s2c .elementor-widget-heading .elementor-heading-title { font-family: "Titillium Web", sans-serif !important; font-weight: 600 !important; font-style: normal !important; letter-spacing: 0 !important; color: #fff !important; text-shadow: none !important; }
.m-pp-s1c .elementor-widget-text-editor, .m-pp-s1c .elementor-widget-text-editor p,
.m-pp-s2c .elementor-widget-text-editor, .m-pp-s2c .elementor-widget-text-editor p { font-family: Raleway, sans-serif !important; font-weight: 500 !important; font-style: normal !important; line-height: 1.6 !important; letter-spacing: 0 !important; color: #CDCDCD !important; text-shadow: none !important; }
.m-pp-s1c .elementor-widget-text-editor p, .m-pp-s2c .elementor-widget-text-editor p { font-size: max(16px, 1em) !important; }
/* steps 5–7 sit between the bracket arrows: keep the (now larger) copy clear of the arrow ticks */
@media (min-width: 1025px) { .m-pp-s1c .m-pp-row2 > .m-pp-step > .m-pp-txt { padding: 0 10px !important; } }
.m-pp-s1c .m-pp-card { background-color: #1A1A1A !important; border: 1px solid #292929 !important; }
.m-pp-s1c .m-pp-step { background-color: transparent !important; }
.m-pp-s1c .m-pp-badge .elementor-icon { background-color: #1A1A1A !important; box-shadow: 0 0 0 1px #3A3A3A; }
.m-pp-s1c .m-pp-badge .elementor-icon, .m-pp-s1c .m-pp-badge .elementor-icon svg { color: #fff !important; fill: #fff !important; }
.m-pp-s1c .m-pp-ico:not(.m-pp-badge) .elementor-icon, .m-pp-s1c .m-pp-ico:not(.m-pp-badge) .elementor-icon svg { color: #505050 !important; }
.m-pp-s2c .m-pp-quote { background-color: #1A1A1A !important; border: 1px solid #292929 !important; box-shadow: none !important; }
.m-pp-s2c .m-pp-quote .elementor-heading-title, .m-pp-s2c .m-pp-quote .elementor-widget-text-editor, .m-pp-s2c .m-pp-quote p { color: #fff !important; }
.m-pp-s2c .m-pp-ico .elementor-icon, .m-pp-s2c .m-pp-ico .elementor-icon svg { color: #fff !important; }

/* ---------------------------------------------------------------- Home: "Our Working Process" — the one signature element:
   a thin grey rail with quiet discs on ink */
.m-p-home.m-procw { background-color: #0A0A0A !important; background-image: none !important; }
.m-p-home .m-proc-card, .m-p-home .m-proc-frame, .m-p-home .m-proc-list { background-color: transparent !important; background-image: none !important; }
.m-p-home .m-proc-frame { border-color: #292929 !important; }
.m-p-home .m-proc-sk { display: none !important; }
.m-p-home .m-proc-tx .elementor-widget.m-proc-h3 .elementor-heading-title { font-family: "Titillium Web", sans-serif !important; font-weight: 600 !important; letter-spacing: 0 !important; color: #fff !important; }
.m-p-home .m-proc-tx .elementor-widget.m-proc-p, .m-p-home .m-proc-tx .elementor-widget.m-proc-p p { font-family: Raleway, sans-serif !important; font-weight: 500 !important; line-height: 1.5 !important; color: #CDCDCD !important; text-shadow: none !important; }
.m-p-home .m-proc-tx .elementor-widget.m-proc-p p { font-size: max(16px, 1em) !important; }
.m-p-home .m-proc-badge-d .elementor-icon { background-color: #1A1A1A !important; box-shadow: 0 0 0 1px #3A3A3A; }
.m-p-home .m-proc-badge .elementor-icon, .m-p-home .m-proc-badge .elementor-icon svg { color: #fff !important; fill: #fff !important; }
.m-p-home .m-proc-badge-t .elementor-icon { background-color: #1A1A1A !important; border-color: #3A3A3A !important; border-width: 1px !important; }
/* video covers (home.php sets each embed's cover image): play icon in the site's white */
.m-p-home .m-v .elementor-custom-embed-image-overlay { background-size: cover !important; background-position: center !important; }
.m-p-home .m-v .elementor-custom-embed-play i, .m-p-home .m-v .elementor-custom-embed-play svg { color: #fff !important; fill: #fff !important; opacity: .9; filter: drop-shadow(0 2px 6px rgba(0,0,0,.6)); }

/* ---------------------------------------------------------------- Service Area: communities list in the site type */
.m-p-service-area .m-sa-city .elementor-icon-box-title, .m-p-service-area .m-sa-city .elementor-icon-box-title a { font-family: "Titillium Web", sans-serif !important; font-weight: 400 !important; font-size: 19px !important; letter-spacing: 0 !important; }
.m-p-service-area .m-sa-city .elementor-icon, .m-p-service-area .m-sa-city .elementor-icon svg { color: #9F9E9E !important; fill: #9F9E9E !important; }

/* ---------------------------------------------------------------- header (2 Nov, user): larger menu (16px, set in
   30-header.php) and logo; on narrow desktops one step smaller so the eight items stay on one row */
/* desktop bar: no side-panel hamburger (user, 2 Nov) — the menu takes the freed space, search sits at the right edge */
.m-hdr-d .m-hdr-burger { display: none !important; }
.m-hdr-d > .e-con.m-hdr-col-nav { --width: auto; width: auto !important; }
.m-hdr-d > .e-con.m-hdr-col-icons { --width: auto; width: auto !important; }
/* centred bar (user, 3 Nov): logo and search columns share the free width, so the menu sits on the page's centre line
   (exact from ~1440px; narrower, the logo column keeps its own width and the menu moves right only as far as needed);
   logo and search keep the same 40px from the edges (the search lost the 65px it kept for the old hamburger) */
@media (min-width: 1025px) {
	.m-hdr-d > .e-con.m-hdr-col-logo, .m-hdr-d > .e-con.m-hdr-col-icons { --width: auto; width: auto !important; flex: 1 1 0 !important; min-width: max-content !important; }
	.m-hdr-d > .e-con.m-hdr-col-nav { flex: 0 0 auto !important; }
	.m-hdr-d > .e-con.m-hdr-col-logo { --padding-right: 30px; padding-right: 30px !important; }   /* least air logo → menu */
	.m-hdr-d > .e-con.m-hdr-col-icons { --padding-left: 30px; padding-left: 30px !important; --padding-right: 40px; padding-right: 40px !important; }
	.m-hdr-d .m-hdr-search { margin-right: 0 !important; }
}
/* the variable is applied between the items only (not before the first / after the last): gap = 2 x value */
.m-hdr-nav { --e-nav-menu-horizontal-menu-item-margin: 20px !important; }
@media (min-width: 1280px) and (max-width: 1439px) {
	.m-hdr-nav { --e-nav-menu-horizontal-menu-item-margin: 13px !important; }
}
@media (min-width: 1025px) and (max-width: 1279px) {
	.m-hdr-nav { --e-nav-menu-horizontal-menu-item-margin: 10px !important; }
	.m-hdr-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item { font-size: 15px !important; }
	.e-con.m-hdr-col-logo { --padding-left: 20px; padding-left: 20px !important; }
	.m-hdr-d > .e-con.m-hdr-col-logo { --padding-right: 24px; padding-right: 24px !important; }
	.m-hdr-d .m-hdr-col-logo img { width: 170px !important; max-width: 170px !important; height: auto !important; }
	.m-hdr-d > .e-con.m-hdr-col-icons { --padding-left: 20px; padding-left: 20px !important; --padding-right: 20px; padding-right: 20px !important; }
}

/* ---------------------------------------------------------------- equal rows (2 Nov, user: "no unevenness"): cards that sit in
   one row share one height, their images one shape (16:10, centre crop), their icons one size */
/* home blog carousel */
.m-blog-car .swiper-slide.e-loop-item { height: auto !important; }
.m-blog-car .swiper-slide.e-loop-item > .e-con, .m-blog-car .e-con.m-hb-card { height: 100% !important; }
.m-hb-card .m-hb-img img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: cover; }
/* "Related Posts" (posts, FAQ item) */
.m-related-loop .elementor-loop-container { align-items: stretch !important; }
.m-related-loop .elementor-loop-container > .e-loop-item { height: auto !important; }
.m-related-loop .e-loop-item > .e-con { height: 100% !important; }
.m-if-related .m-card-img img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: cover; }
/* home testimonials: every quote box as tall as the tallest, names on one line */
.e-n-carousel .swiper-slide:has(> .m-tst-slide) { height: auto !important; }
.e-n-carousel .swiper-slide > .e-con.m-tst-slide { height: 100% !important; }
.m-tst-slide > .e-con.m-tst-box { flex: 1 1 auto !important; }
/* service pages ("Why Choose Us?" boxes): one icon height */
.m-svc-ibox .m-svc-ibox-icon img { height: 76px !important; width: auto !important; object-fit: contain; }
/* Process "Why our process works": the five feature columns end on one line */
.m-pp-s2c .m-pp-feats, .m-pp-s1c .m-pp-row2 { align-items: stretch !important; }
.m-pp-s2c .m-pp-feats > .m-pp-feat { align-self: stretch !important; height: auto !important; }

/* ---------------------------------------------------------------- buttons (user, 2 Nov): no offset corner lines */
.elementor-widget-button.m-btn .elementor-button::before,
.elementor-widget-button.m-btn .elementor-button::after { display: none !important; }

/* ---------------------------------------------------------------- page bands with a bright photo: a dark veil keeps the white
   title / crumbs readable (painted over the background, under the content) */
.e-con.m-band.m-p-about-us, .e-con.m-band.m-p-service-area { box-shadow: inset 0 0 0 100vmax rgba(10, 10, 10, .5) !important; }

/* ---------------------------------------------------------------- blog (user, 2 Nov): no sidebar — the list / article in one
   centred, readable column */
.e-con.m-blog-side { display: none !important; }
.e-con.m-blog-main { --width: 100%; width: 100% !important; max-width: 870px !important; margin-left: auto !important; margin-right: auto !important; }

/* ---------------------------------------------------------------- Contact (user, 2 Nov): form and contact card side by side on
   one top line, equal height, nothing pushed over the band or the map (the live theme used negative margins) */
.e-con.m-ct-main { --margin-bottom: 0px; margin-bottom: 0 !important; --padding-top: 100px; --padding-bottom: 100px; padding-top: 100px !important; padding-bottom: 100px !important; }
.e-con.m-ct-main > .e-con-inner { gap: 40px !important; align-items: stretch !important; }
/* the LeadConnector form draws a ~550px card centred in its iframe: the form column is exactly that wide, so the "Get in Touch"
   title and the form share one left edge; the contact card takes the rest */
.m-ct-main .e-con.m-ct-left { --width: 550px; width: 550px !important; flex: 0 0 550px !important; --margin-right: 0px; margin: 0 !important; padding: 0 !important; }
.m-ct-main .e-con.m-ct-card { --width: auto; width: auto !important; flex: 1 1 0 !important; margin: 0 !important; padding: 50px 40px !important; justify-content: flex-start !important; }
.m-ct-card > .e-con.m-ih { --padding-top: 0px; padding-top: 0 !important; }
.m-ct-card .m-ct-social { --padding-bottom: 40px; padding-bottom: 40px !important; }
.m-ct-card .m-ct-logo img { max-width: 220px; }
.e-con.m-ct-mapsec { --margin-top: 0px; margin-top: 0 !important; }
@media (max-width: 1024px) {
	.e-con.m-ct-main { padding-top: 70px !important; padding-bottom: 70px !important; }
	.m-ct-main .e-con.m-ct-left { --width: 550px; width: 550px !important; max-width: 100%; flex: 0 0 auto !important; margin: 0 auto !important; }
	.m-ct-main .e-con.m-ct-card { --width: 100%; width: 100% !important; flex: 0 0 auto !important; }
}
@media (max-width: 767px) {
	.m-ct-main .e-con.m-ct-left { padding: 0 15px !important; }
	.m-ct-main .e-con.m-ct-card { --width: calc(100% - 30px); width: calc(100% - 30px) !important; margin: 0 15px !important; padding: 40px 20px !important; }
}

/* ---------------------------------------------------------------- footer (2 Nov, user): wider and calmer — 1320px, more air,
   quieter column rules, every column starts on the same line */
.e-con.m-ftr-top { --content-width: 1320px; --padding-top: 110px; --padding-bottom: 110px; }
.m-ftr-top .e-con.m-ftr-col { --padding-left: 40px; --padding-right: 40px; padding-left: 40px !important; padding-right: 40px !important; border-color: #292929 !important; justify-content: flex-start !important; }
.m-ftr-top .e-con.m-ftr-col-1 { --padding-left: 0px; padding-left: 0 !important; }
.m-ftr-top .e-con.m-ftr-col-4 { --padding-right: 0px; padding-right: 0 !important; }
.m-ftr-top .m-ftr-col-1 .m-ftr-logo img { max-width: 240px; margin: 0 auto; }
/* column widths by content: the contact lines (address, e-mail) need the widest column so icon and text stay on one line */
@media (min-width: 1025px) {
	.m-ftr-top > .e-con-inner > .e-con.m-ftr-col-1 { --width: 26%; width: 26% !important; }
	.m-ftr-top > .e-con-inner > .e-con.m-ftr-col-2 { --width: 20%; width: 20% !important; }
	.m-ftr-top > .e-con-inner > .e-con.m-ftr-col-3 { --width: 30%; width: 30% !important; }
	.m-ftr-top > .e-con-inner > .e-con.m-ftr-col-4 { --width: 24%; width: 24% !important; }
	.m-ftr-top .m-contact a, .m-ftr-top .m-contact p { white-space: normal; }
}
@media (min-width: 1025px) and (max-width: 1279px) {
	.m-ftr-top .e-con.m-ftr-col { padding-left: 22px !important; padding-right: 22px !important; }
	.m-ftr-top .e-con.m-ftr-col-1 { padding-left: 0 !important; }
	.m-ftr-top .e-con.m-ftr-col-4 { padding-right: 0 !important; }
	.m-ftr-top .m-contact { font-size: 15px; }
}
.m-ftr-top .m-ftr-title .elementor-heading-title { font-size: 22px !important; line-height: 26px !important; }
.m-ftr-top .m-ftr-tagline { --padding-bottom: 30px; }
/* social icons (user, 2 + 3 Nov: larger, then "not equal"): the three 32px PNGs differ in shape and blur when enlarged —
   one drawn set instead: 44px graphite discs with the same light ring, white brand glyphs from one family (Font Awesome
   Free brand shapes, CC BY 4.0) in one 20px box. The PNG stays in each link, transparent, as its accessible name. */
.m-social p { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.m-social a { position: relative; display: block; width: 44px; height: 44px; margin: 0 !important; border-radius: 50%; background: #1A1A1A; box-shadow: 0 0 0 1px rgba(255, 255, 255, .35); line-height: 0; transition: box-shadow .25s, transform .25s, background-color .25s; }
.m-social a:hover, .m-social a:focus-visible { box-shadow: 0 0 0 1px #fff; background: #2A2A2A; transform: translateY(-2px); }
.m-social img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; }
.m-social a::before { content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 20px; transform: translate(-50%, -50%); background: #fff; -webkit-mask: var(--m-glyph) center / contain no-repeat; mask: var(--m-glyph) center / contain no-repeat; }
.m-social a[href*="facebook"] { --m-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z'/%3E%3C/svg%3E"); }
.m-social a[href*="instagram"] { --m-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/%3E%3C/svg%3E"); }
.m-social a[href*="youtube"] { --m-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z'/%3E%3C/svg%3E"); }
/* footer column 1 in one axis: logo, tagline and the icon row share the column's centre line (phones: left, like the logo) */
.m-ftr-top .m-ftr-col-1 .m-ftr-tagline, .m-ftr-top .m-ftr-col-1 .m-ftr-tagline p { text-align: center !important; }
.m-ftr-top .m-ftr-col-1 .m-social p { justify-content: center; }
.m-ct-social .elementor-social-icon { --icon-size: 20px; --icon-padding: .7em; box-shadow: 0 0 0 1px rgba(255, 255, 255, .35); }
.m-ct-social .elementor-grid { --grid-column-gap: 12px; }
@media (min-width: 768px) and (max-width: 1024px) {
	.m-ftr-top .e-con.m-ftr-col { padding-left: 24px !important; padding-right: 24px !important; }
	.m-ftr-top .e-con.m-ftr-col-1, .m-ftr-top .e-con.m-ftr-col-3 { padding-left: 0 !important; }
	.m-ftr-top .e-con.m-ftr-col-2 { border-right: 0 !important; }
}
@media (max-width: 767px) {
	.e-con.m-ftr-top { --padding-top: 70px; --padding-bottom: 70px; }
	.m-ftr-top .e-con.m-ftr-col { padding-left: 15px !important; padding-right: 15px !important; border-right: 0 !important; }
	.m-ftr-top .m-ftr-col-1 .m-ftr-logo img { margin: 0; }
	.m-ftr-top .m-ftr-col-1 .m-ftr-tagline, .m-ftr-top .m-ftr-col-1 .m-ftr-tagline p { text-align: left !important; }
	.m-ftr-top .m-ftr-col-1 .m-social p { justify-content: flex-start; }
}

/* ---------------------------------------------------------------- breakpoints */
@media (min-width: 1025px) {
	.m-p-home .e-con.m-proc-rail { border-color: #505050 !important; }
	.m-p-home .e-con.m-proc-rail.m-proc-rail-top { border-width: 1px 1px 0 1px !important; }
	.m-p-home .e-con.m-proc-rail.m-proc-rail-bot { border-width: 0 0 1px 0 !important; }
	.m-p-home .e-con.m-proc-st:not(:last-child)::after { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2040%27%3E%3Cpath%20d%3D%27M0%203h10v34H0z%27%20fill%3D%27%230A0A0A%27%2F%3E%3Cpath%20d%3D%27M5%200v4l15%2016L5%2036v4%27%20fill%3D%27none%27%20stroke%3D%27%23505050%27%20stroke-width%3D%272%27%2F%3E%3C%2Fsvg%3E") !important; }
	.m-p-home .e-con.m-proc-st:not(:first-child):not(:last-child) > .e-con.m-proc-rail::after { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2032%2032%27%3E%3Cpath%20d%3D%27M22%2014.5h10v3H22z%27%20fill%3D%27%230A0A0A%27%2F%3E%3Cpath%20d%3D%27M11%207%2020%2016%2011%2025%27%20fill%3D%27none%27%20stroke%3D%27%23505050%27%20stroke-width%3D%272%27%2F%3E%3C%2Fsvg%3E") !important; }
}
@media (max-width: 1024px) {
	.m-au-intro .m-au-intro-in { gap: 40px !important; }
	.m-au-wwd .m-au-wwd-card, .m-au-hww .m-au-hww-face { padding-left: 16px !important; padding-right: 16px !important; }
	.m-p-home .e-con.m-proc-st:not(:last-child) > .e-con.m-proc-rail::after { background: #505050 !important; width: 1px !important; }
	.m-p-home .e-con.m-proc-st:not(:last-child)::after { border-color: #505050 !important; border-width: 0 1px 1px 0 !important; }
}
@media (max-width: 767px) {
	.m-au-intro .m-au-intro-title .elementor-heading-title,
	.m-au-wwd > .elementor-widget-heading .elementor-heading-title,
	.m-au-hww .m-au-hww-title .elementor-heading-title,
	.m-au-wtu .m-au-wtu-head .elementor-heading-title,
	.m-pp-s1c h2.elementor-heading-title,
	.m-pp-s2c h2.elementor-heading-title,
	.m-p-home .elementor-widget.m-proc-title .elementor-heading-title { font-size: 27px !important; line-height: 38px !important; }
	.m-p-about-us.m-au-intro, .m-p-about-us.m-au-wwd, .m-p-about-us.m-au-hww, .m-p-about-us.m-au-wtu { padding: 70px 15px !important; }
	.m-p-process.m-pp-s1 { padding-top: 40px !important; }
	/* 18 communities: two columns on phones instead of one long column (same names, same order) */
	.m-p-service-area.m-sa-cities > .e-con-inner > .e-con.m-col { --width: calc(50% - 10px); width: calc(50% - 10px) !important; max-width: none !important; }
	.m-p-service-area.m-sa-cities > .e-con-inner { row-gap: 26px !important; }
	.m-p-service-area .m-sa-city .elementor-icon-box-title, .m-p-service-area .m-sa-city .elementor-icon-box-title a { font-size: 16px !important; line-height: 22px !important; }
	.m-au-intro .m-au-intro-in { flex-direction: column !important; gap: 30px !important; }
	.m-au-intro .m-au-intro-in > .m-au-intro-photo { width: 100% !important; }
	.m-au-wwd > .elementor-widget-heading, .m-au-hww .m-au-hww-title { margin-bottom: 40px !important; }
	.m-au-hww .m-au-hww-card:not(:last-child) .m-au-hww-face::after,
	.m-au-hww .m-au-hww-card:nth-child(3) .m-au-hww-face::after { left: calc(50% - 15px) !important; top: calc(100% + 10px) !important; transform: rotate(90deg) !important; }
	.m-au-wtu .m-au-wtu-panel > .m-au-wtu-col { padding: 28px 10px 24px !important; }
	.m-au-wtu .m-au-wtu-panel > .m-au-wtu-col:nth-child(2n) { border-left: 1px solid #292929 !important; }
	.m-au-wtu .m-au-wtu-panel > .m-au-wtu-col:nth-child(n+3) { border-top: 1px solid #292929 !important; }
	.m-au-wtu .m-au-wtu-panel > .m-au-wtu-col + .m-au-wtu-col:nth-child(odd) { border-left: 0 !important; }
}

/* ---------------------------------------------------------------- 3 Nov (user): no dotted rules under titles anywhere, no
   breadcrumb trail in the page bands ("HOME •• OUR PORTFOLIO"); the BreadcrumbList schema stays (Rank Math) */
.m-ih--dots .m-ih-title .elementor-heading-title::after,
.m-side .widget-title::before { content: none !important; display: none !important; }
.elementor-widget.m-crumbs, .elementor-widget.m-crumbs-dyn { display: none !important; }
/* no header search (user, 3 Nov), desktop and phone bars; the "[ … ]" labels are left out by milano-core (theme.php) */
.elementor-widget.m-hdr-search { display: none !important; }

/* ---------------------------------------------------------------- typography (3 Nov, user chose "A" of three samples,
   docs/proposals/typography/): the site's own families (Titillium Web + Raleway), only larger and firmer.
   - body copy: never under 17px (phones 16px; larger leads keep their size), weight 500, leading 1.8;
   - mid-grey copy on dark lifted #A3A3A3 → #CDCDCD with a relative colour: each channel gains up to 42 above 110, so white,
     light and dark (ink-on-white) text keep their own colour; browsers without relative colours keep today's grey;
   - titles h2–h6 Titillium 600; desktop menu 600.
   Untouched: display titles (hero, page band h1), Josefin labels, CTA panels, the Leonardo quote, the copyright line, the
   scaled infographic copy (Process, home process — set in their own sections above). */
:is(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt):not(.m-pp-txt, .m-pp-txt *, .m-proc-p, .m-leo-quote, .m-ftr-copy) :is(p, ul, ol):not(li *) {
	font-size: max(17px, 1em) !important; line-height: 1.8 !important; font-weight: 500 !important; letter-spacing: .1px !important;
}
:is(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt):not(.m-pp-txt, .m-pp-txt *, .m-proc-p, .m-leo-quote, .m-ftr-copy, .m-p-privacy-policy *) :is(p, ul, ol):not(li *) {
	color: rgb(from currentColor calc(r + clamp(0, (r - 110) * .8, 42)) calc(g + clamp(0, (g - 110) * .8, 42)) calc(b + clamp(0, (b - 110) * .8, 42))) !important;
}
/* a manual excerpt prints its text straight into the widget (no <p>): same copy style, named colour (cards are dark) */
.elementor-widget-theme-post-excerpt:not(:has(p)) { font-size: 17px !important; line-height: 1.8 !important; font-weight: 500 !important; letter-spacing: .1px !important; color: #CDCDCD !important; }
/* the same copy in image boxes, icon boxes and lists (their colour sits on the element itself, so it is named) */
.m-svc-ib .elementor-image-box-description { font-size: 17px !important; line-height: 1.8 !important; font-weight: 500 !important; color: #CDCDCD !important; }
.m-ct-info .elementor-icon-box-description { font-size: 17px !important; font-weight: 500 !important; }
.m-ftr-links .elementor-icon-list-text { font-size: 17px !important; font-weight: 500 !important; color: #CDCDCD !important; }
.m-ftr-links .elementor-icon-list-item:hover .elementor-icon-list-text, .m-ftr-links a:hover .elementor-icon-list-text { color: #fff !important; }
/* titles */
:is(.elementor-heading-title:is(h2, h3, h4, h5, h6), .elementor-image-box-title, .elementor-icon-box-title, .e-n-accordion-item-title-text,
	.elementor-widget-theme-post-content :is(h2, h3, h4, h5, h6), .elementor-widget-text-editor :is(h2, h3, h4, h5, h6)):not(.m-hero-title *, .m-cta-a-title *, .m-cta-b-head *, .m-leo-quote *) {
	font-weight: 600 !important;
}
/* menu */
.m-hdr-nav .elementor-nav-menu--main .elementor-item { font-weight: 600 !important; }
@media (min-width: 1025px) and (max-width: 1279px) {
	.m-ftr-top .m-contact p { font-size: 15px !important; }
}
@media (max-width: 767px) {
	:is(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-theme-post-excerpt):not(.m-pp-txt, .m-pp-txt *, .m-proc-p, .m-leo-quote, .m-ftr-copy) :is(p, ul, ol):not(li *) { font-size: max(16px, 1em) !important; }
	.elementor-widget-theme-post-excerpt:not(:has(p)),
	.m-svc-ib .elementor-image-box-description, .m-ct-info .elementor-icon-box-description, .m-ftr-links .elementor-icon-list-text,
	.m-au-wwd .m-au-wwd-list .elementor-icon-list-item, .m-au-wwd .m-au-wwd-list .elementor-icon-list-text, .m-au-wtu .elementor-icon-box-description,
	.m-au-intro .m-au-intro-copy, .m-au-intro .m-au-intro-copy p { font-size: 16px !important; }
}/* End custom CSS */