/** Start Block Kit CSS: 144-3-3a7d335f39a8579c20cdf02f8d462582 **/

.envato-block__preview{overflow: visible;}

/* Envato Kit 141 Custom Styles - Applied to the element under Advanced */

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{
	text-align: center;
}
.envato-kit-141-top-0 h1,
.envato-kit-141-top-0 h2,
.envato-kit-141-top-0 h3,
.envato-kit-141-top-0 h4,
.envato-kit-141-top-0 h5,
.envato-kit-141-top-0 h6,
.envato-kit-141-top-0 p {
	margin-top: 0;
}

.envato-kit-141-newsletter-inline .elementor-field-textual.elementor-size-md {
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.envato-kit-141-bottom-0 p {
	margin-bottom: 0;
}

.envato-kit-141-bottom-8 .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
	margin-bottom: .5rem;
}

.envato-kit-141.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container {
	padding-bottom: 52px;
}

.envato-kit-141-display-inline {
	display: inline-block;
}

.envato-kit-141 .elementor-slick-slider ul.slick-dots {
	bottom: -40px;
}

/** End Block Kit CSS: 144-3-3a7d335f39a8579c20cdf02f8d462582 **/



/** Start Block Kit CSS: 69-3-4f8cfb8a1a68ec007f2be7a02bdeadd9 **/

.envato-kit-66-menu .e--pointer-framed .elementor-item:before{
	border-radius:1px;
}

.envato-kit-66-subscription-form .elementor-form-fields-wrapper{
	position:relative;
}

.envato-kit-66-subscription-form .elementor-form-fields-wrapper .elementor-field-type-submit{
	position:static;
}

.envato-kit-66-subscription-form .elementor-form-fields-wrapper .elementor-field-type-submit button{
	position: absolute;
    top: 50%;
    right: 6px;
    transform: translate(0, -50%);
		-moz-transform: translate(0, -50%);
		-webmit-transform: translate(0, -50%);
}

.envato-kit-66-testi-slider .elementor-testimonial__footer{
	margin-top: -60px !important;
	z-index: 99;
  position: relative;
}

.envato-kit-66-featured-slider .elementor-slides .slick-prev{
	width:50px;
	height:50px;
	background-color:#ffffff !important;
	transform:rotate(45deg);
	-moz-transform:rotate(45deg);
	-webkit-transform:rotate(45deg);
	left:-25px !important;
	-webkit-box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.32);
	-moz-box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.32);
	box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.32);
}

.envato-kit-66-featured-slider .elementor-slides .slick-prev:before{
	display:block;
	margin-top:0px;
	margin-left:0px;
	transform:rotate(-45deg);
	-moz-transform:rotate(-45deg);
	-webkit-transform:rotate(-45deg);
}

.envato-kit-66-featured-slider .elementor-slides .slick-next{
	width:50px;
	height:50px;
	background-color:#ffffff !important;
	transform:rotate(45deg);
	-moz-transform:rotate(45deg);
	-webkit-transform:rotate(45deg);
	right:-25px !important;
	-webkit-box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.32);
	-moz-box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.32);
	box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.32);
}

.envato-kit-66-featured-slider .elementor-slides .slick-next:before{
	display:block;
	margin-top:-5px;
	margin-right:-5px;
	transform:rotate(-45deg);
	-moz-transform:rotate(-45deg);
	-webkit-transform:rotate(-45deg);
}

.envato-kit-66-orangetext{
	color:#f4511e;
}

.envato-kit-66-countdown .elementor-countdown-label{
	display:inline-block !important;
	border:2px solid rgba(255,255,255,0.2);
	padding:9px 20px;
}

/** End Block Kit CSS: 69-3-4f8cfb8a1a68ec007f2be7a02bdeadd9 **/



/** Start Block Kit CSS: 72-3-34d2cc762876498c8f6be5405a48e6e2 **/

.envato-block__preview{overflow: visible;}

/*Kit 69 Custom Styling for buttons */
.envato-kit-69-slide-btn .elementor-button,
.envato-kit-69-cta-btn .elementor-button,
.envato-kit-69-flip-btn .elementor-button{
	border-left: 0px !important;
	border-bottom: 0px !important;
	border-right: 0px !important;
	padding: 15px 0 0 !important;
}
.envato-kit-69-slide-btn .elementor-slide-button:hover,
.envato-kit-69-cta-btn .elementor-button:hover,
.envato-kit-69-flip-btn .elementor-button:hover{
	margin-bottom: 20px;
}
.envato-kit-69-menu .elementor-nav-menu--main a:hover{
	margin-top: -7px;
	padding-top: 4px;
	border-bottom: 1px solid #FFF;
}
/* Fix menu dropdown width */
.envato-kit-69-menu .elementor-nav-menu--dropdown{
	width: 100% !important;
}

/** End Block Kit CSS: 72-3-34d2cc762876498c8f6be5405a48e6e2 **/



/** Start Block Kit CSS: 136-3-fc37602abad173a9d9d95d89bbe6bb80 **/

.envato-block__preview{overflow: visible !important;}

/** End Block Kit CSS: 136-3-fc37602abad173a9d9d95d89bbe6bb80 **/


/* ============================================================================
   SITE HOTFIXES (keep - not blog related)
   ============================================================================ */

/* Fix: Lake Forest recognition photo was invisible on mobile (iOS Safari) - Jul 8 2026 */
@media (max-width: 900px){
  .recog-photo{ aspect-ratio: auto; min-height: 0; height: 260px; }
}

/* Fix: hero stayed 2-column on mobile (duplicate style block) - estimate card was clipped. Jul 8 2026 */
@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr !important; gap: 40px !important; }
}


/* ============================================================================
   BOFRAN - COMPLETE BLOG STYLING  (single posts + /tips/ archive)
   THE ONLY blog CSS you paste. Goes in Appearance > Customize > Additional CSS,
   at the very bottom (below the Envato "Block Kit" code and any other fixes).
   100% ASCII-safe so it won't garble on paste.
   ============================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

/* ============================================================================
   BOFRAN - Blog single-post styling
   Paste this into your Elementor Pro "Single Post" template's Custom CSS
   (or Elementor > Site Settings > Custom CSS). It is scoped to body.single-post,
   so it ONLY affects blog posts - never your pages, header or footer.

   This makes EVERY post (all current + future) match the blog design:
   branded fonts + colors, styled headings, lists, links, quotes, tables, images.
   No per-post work - one paste, all posts update.
   ============================================================================ */


/* ---- brand variables (scoped to posts only) ---- */
body.single-post{
  --navy:#16294A; --gold:#B8965A; --gold-dk:#7A5A30; --yellow:#F5B41F;
  --ink:#1A1A1A; --muted:#6B7280; --faint:#9AA1AC; --line:#E6E8EC; --line-2:#D8DCE2;
  --paper:#FAFAF7; --bone:#F4EFE7;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',sans-serif;
}

/* ---- POST TITLE (Post Title widget) ---- */
body.single-post .elementor-widget-theme-post-title h1,
body.single-post h1.entry-title{
  font-family:var(--serif); font-weight:500; letter-spacing:-0.01em;
  font-size:clamp(32px,4.4vw,56px); line-height:1.1; color:inherit;
  text-transform:none;   /* stop the template hero forcing ALL CAPS */
}
/* keep body headings in their natural case too */
body.single-post .elementor-widget-theme-post-content h2,
body.single-post .elementor-widget-theme-post-content h3,
body.single-post .elementor-widget-theme-post-content h4,
body.single-post .entry-content h2, body.single-post .bofran-post-wrap h2,
body.single-post .entry-content h3, body.single-post .bofran-post-wrap h3,
body.single-post .entry-content h4, body.single-post .bofran-post-wrap h4{ text-transform:none; }

/* ---- FEATURED IMAGE (Featured Image widget) - brass hairline frame ---- */
body.single-post .elementor-widget-theme-post-featured-image img,
body.single-post .post-thumbnail img{
  display:block; width:100%; aspect-ratio:16/9; object-fit:cover;
  outline:1px solid rgba(184,150,90,.35); outline-offset:-1px;
}

/* ============================================================================
   POST BODY  - everything below styles the content each post already contains
   (the "Post Content" widget). Existing posts inherit all of this automatically.
   ============================================================================ */
body.single-post .elementor-widget-theme-post-content,
body.single-post .entry-content, body.single-post .bofran-post-wrap{
  font-family:var(--sans); color:var(--ink);
  overflow-wrap:break-word; word-break:break-word; /* long URLs/words can't push the page sideways on phones */
}

/* body copy */
body.single-post .elementor-widget-theme-post-content p,
body.single-post .entry-content p, body.single-post .bofran-post-wrap p{
  font-family:var(--sans); font-size:17.5px; font-weight:300; line-height:1.85;
  color:#2A2A2A; margin:0 0 26px;
}

/* headings */
body.single-post .elementor-widget-theme-post-content h2,
body.single-post .entry-content h2, body.single-post .bofran-post-wrap h2{
  font-family:var(--serif); font-weight:500; letter-spacing:-0.005em;
  font-size:clamp(27px,2.8vw,34px); line-height:1.2; color:var(--ink);
  margin:48px 0 18px;
}
body.single-post .elementor-widget-theme-post-content h3,
body.single-post .entry-content h3, body.single-post .bofran-post-wrap h3{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(21px,2.2vw,25px); line-height:1.3; color:var(--ink);
  margin:36px 0 14px;
}
body.single-post .elementor-widget-theme-post-content h4,
body.single-post .entry-content h4, body.single-post .bofran-post-wrap h4{
  font-family:var(--sans); font-weight:600; font-size:16px; letter-spacing:.02em;
  color:var(--navy); margin:28px 0 12px;
}

/* inline links */
body.single-post .elementor-widget-theme-post-content a,
body.single-post .entry-content a, body.single-post .bofran-post-wrap a{
  color:var(--gold-dk); text-decoration:underline;
  text-underline-offset:3px; text-decoration-thickness:1px;
}
body.single-post .elementor-widget-theme-post-content a:hover,
body.single-post .entry-content a:hover, body.single-post .bofran-post-wrap a:hover{ color:var(--gold); }

body.single-post .elementor-widget-theme-post-content strong,
body.single-post .entry-content strong, body.single-post .bofran-post-wrap strong{ font-weight:600; color:var(--ink); }

/* bulleted lists - brass diamond markers */
body.single-post .elementor-widget-theme-post-content ul,
body.single-post .entry-content ul, body.single-post .bofran-post-wrap ul{ list-style:none; margin:0 0 26px; padding-left:0; }
body.single-post .elementor-widget-theme-post-content ul > li,
body.single-post .entry-content ul > li, body.single-post .bofran-post-wrap ul > li{
  font-family:var(--sans); font-size:17px; font-weight:300; line-height:1.7;
  color:#2A2A2A; position:relative; padding-left:30px; margin-bottom:13px;
}
body.single-post .elementor-widget-theme-post-content ul:not(.bofran-checklist) > li::before,
body.single-post .entry-content ul:not(.bofran-checklist) > li::before, body.single-post .bofran-post-wrap ul:not(.bofran-checklist) > li::before{
  content:""; position:absolute; left:4px; top:11px; width:7px; height:7px;
  background:var(--gold); transform:rotate(45deg);
}

/* numbered lists - navy square counters */
body.single-post .elementor-widget-theme-post-content ol,
body.single-post .entry-content ol, body.single-post .bofran-post-wrap ol{ list-style:none; counter-reset:steps; margin:0 0 26px; padding-left:0; }
body.single-post .elementor-widget-theme-post-content ol > li,
body.single-post .entry-content ol > li, body.single-post .bofran-post-wrap ol > li{
  font-family:var(--sans); font-size:17px; font-weight:300; line-height:1.7;
  color:#2A2A2A; position:relative; padding-left:44px; margin-bottom:16px;
  counter-increment:steps;
}
body.single-post .elementor-widget-theme-post-content ol > li::before,
body.single-post .entry-content ol > li::before, body.single-post .bofran-post-wrap ol > li::before{
  content:counter(steps); position:absolute; left:0; top:0; width:28px; height:28px;
  background:var(--navy); color:#fff; font-family:var(--serif); font-size:15px;
  font-weight:600; display:flex; align-items:center; justify-content:center;
}

/* blockquote -> Bofran pull-quote (any quote in an existing post gets this look) */
body.single-post .elementor-widget-theme-post-content blockquote,
body.single-post .entry-content blockquote, body.single-post .bofran-post-wrap blockquote{
  margin:40px 0; padding:6px 0 6px 30px; border-left:3px solid var(--gold);
  background:none; font-style:normal;
}
body.single-post .elementor-widget-theme-post-content blockquote p,
body.single-post .entry-content blockquote p, body.single-post .bofran-post-wrap blockquote p{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(23px,2.6vw,30px); line-height:1.4; color:var(--navy); margin:0;
}

/* tables -> Bofran cost table (navy header, striped rows).
   display:block + overflow-x lets wide tables scroll sideways on phones
   instead of pushing the whole page off-screen. */
body.single-post .elementor-widget-theme-post-content table,
body.single-post .entry-content table, body.single-post .bofran-post-wrap table{
  display:block; overflow-x:auto; max-width:100%;
  width:100%; border-collapse:collapse; font-family:var(--sans);
  border:1px solid var(--line); margin:34px 0;
}
body.single-post .elementor-widget-theme-post-content table th,
body.single-post .elementor-widget-theme-post-content table td,
body.single-post .entry-content table th, body.single-post .bofran-post-wrap table th,
body.single-post .entry-content table td, body.single-post .bofran-post-wrap table td{ white-space:normal; min-width:110px; }
body.single-post .elementor-widget-theme-post-content th,
body.single-post .entry-content th, body.single-post .bofran-post-wrap th{
  background:var(--navy); color:#fff; font-weight:600; font-size:12px;
  letter-spacing:.08em; text-transform:uppercase; text-align:left; padding:14px 18px;
}
body.single-post .elementor-widget-theme-post-content td,
body.single-post .entry-content td, body.single-post .bofran-post-wrap td{
  font-size:15px; text-align:left; padding:14px 18px; border-bottom:1px solid var(--line);
}
body.single-post .elementor-widget-theme-post-content tbody tr:nth-child(even) td,
body.single-post .entry-content tbody tr:nth-child(even) td, body.single-post .bofran-post-wrap tbody tr:nth-child(even) td{ background:var(--paper); }

/* images inside the body - subtle brass frame + spacing */
body.single-post .elementor-widget-theme-post-content img,
body.single-post .entry-content img, body.single-post .bofran-post-wrap img{
  display:block; max-width:100%; height:auto; margin:30px 0;
  outline:1px solid rgba(184,150,90,.35); outline-offset:-1px;
}
body.single-post .elementor-widget-theme-post-content figcaption,
body.single-post .entry-content figcaption, body.single-post .bofran-post-wrap figcaption{
  font-family:var(--serif); font-size:14px; font-style:italic; color:#6b6155; margin-top:12px;
}

/* readable content column (safe default; remove if your template already sets width) */
body.single-post .elementor-widget-theme-post-content > .elementor-widget-container{
  max-width:760px;
}

/* ---- complete content coverage - everything WordPress can output ---- */
/* small headings */
body.single-post .elementor-widget-theme-post-content h5,
body.single-post .entry-content h5, body.single-post .bofran-post-wrap h5{
  font-family:var(--sans); font-size:14px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--navy); margin:26px 0 10px;
}
body.single-post .elementor-widget-theme-post-content h6,
body.single-post .entry-content h6, body.single-post .bofran-post-wrap h6{
  font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold-dk); margin:24px 0 10px;
}
/* divider lines */
body.single-post .elementor-widget-theme-post-content hr,
body.single-post .entry-content hr, body.single-post .bofran-post-wrap hr{
  border:0; border-top:1px solid var(--line); margin:44px 0;
}
/* figures & captions (Gutenberg image blocks + classic captions) */
body.single-post .elementor-widget-theme-post-content figure,
body.single-post .entry-content figure, body.single-post .bofran-post-wrap figure{ margin:30px 0; max-width:100%; }
body.single-post .elementor-widget-theme-post-content figure img,
body.single-post .entry-content figure img, body.single-post .bofran-post-wrap figure img{ margin:0; }
body.single-post .elementor-widget-theme-post-content .wp-caption-text,
body.single-post .entry-content .wp-caption-text, body.single-post .bofran-post-wrap .wp-caption-text{
  font-family:var(--serif); font-size:14px; font-style:italic; color:#6b6155; margin-top:12px;
}
/* image alignment classes */
body.single-post .entry-content .aligncenter, body.single-post .bofran-post-wrap .aligncenter,
body.single-post .elementor-widget-theme-post-content .aligncenter{ margin-left:auto; margin-right:auto; }
@media(min-width:700px){
  body.single-post .entry-content .alignleft, body.single-post .bofran-post-wrap .alignleft,
  body.single-post .elementor-widget-theme-post-content .alignleft{ float:left; margin:6px 26px 16px 0; max-width:46%; }
  body.single-post .entry-content .alignright, body.single-post .bofran-post-wrap .alignright,
  body.single-post .elementor-widget-theme-post-content .alignright{ float:right; margin:6px 0 16px 26px; max-width:46%; }
}
/* video / map embeds - responsive, never overflow */
body.single-post .elementor-widget-theme-post-content iframe,
body.single-post .entry-content iframe, body.single-post .bofran-post-wrap iframe,
body.single-post .elementor-widget-theme-post-content video,
body.single-post .entry-content video, body.single-post .bofran-post-wrap video{
  max-width:100%; width:100%; aspect-ratio:16/9; height:auto; border:0; margin:30px 0;
}
/* code (rare, but styled so it never looks broken) */
body.single-post .elementor-widget-theme-post-content pre,
body.single-post .entry-content pre, body.single-post .bofran-post-wrap pre{
  background:var(--panel); border:1px solid var(--line); padding:18px 20px;
  overflow-x:auto; font-size:14px; line-height:1.6; margin:0 0 26px;
}
body.single-post .elementor-widget-theme-post-content code,
body.single-post .entry-content code, body.single-post .bofran-post-wrap code{ background:var(--panel); padding:2px 6px; font-size:.92em; }

/* ---- OPTIONAL: a reusable "key takeaways" callout box ----
   In any post, wrap a block in a Shortcode/HTML widget or add class "bofran-callout"
   to a container to get the bone highlight box with the brass top-rule. */
body.single-post .bofran-callout{
  background:var(--bone); border-top:3px solid var(--gold);
  padding:clamp(24px,3vw,34px); margin:40px 0;
}
body.single-post .bofran-callout h4{
  font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-dk); margin:0 0 16px;
}

/* ---- checklist (real check-boxes) - add class "bofran-checklist" to a <ul> ---- */
body.single-post .bofran-checklist{ list-style:none; margin:0 0 30px; padding-left:0; }
body.single-post .bofran-checklist > li{
  position:relative; padding-left:36px; margin-bottom:13px;
  font-family:var(--sans); font-size:16.5px; font-weight:300; line-height:1.6; color:#2A2A2A;
}
body.single-post .bofran-checklist > li::before{
  content:""; position:absolute; left:0; top:2px; width:20px; height:20px;
  border:1.5px solid var(--gold); border-radius:3px; background:none;
}
body.single-post .bofran-checklist > li::after{
  content:""; position:absolute; left:7px; top:5px; width:5px; height:10px;
  border:solid var(--gold-dk); border-width:0 2px 2px 0; transform:rotate(45deg);
}

/* ---- quote attribution - subtle muted <cite> with a quiet link ---- */
body.single-post .elementor-widget-theme-post-content blockquote cite,
body.single-post .entry-content blockquote cite, body.single-post .bofran-post-wrap blockquote cite{
  display:block; margin-top:12px; font-family:var(--sans); font-style:normal;
  font-size:13px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--faint);
}
body.single-post .elementor-widget-theme-post-content blockquote cite a,
body.single-post .entry-content blockquote cite a, body.single-post .bofran-post-wrap blockquote cite a{
  color:var(--faint); text-decoration:none; border-bottom:1px solid rgba(0,0,0,.14);
}
body.single-post .elementor-widget-theme-post-content blockquote cite a:hover,
body.single-post .entry-content blockquote cite a:hover, body.single-post .bofran-post-wrap blockquote cite a:hover{ color:var(--gold-dk); border-color:var(--gold); }

/* ---- sticky sidebar - add the class "bofran-sidebar" to the RIGHT column ----
   Desktop only; align-self:flex-start stops the column stretching so it has
   room to actually stick. top:100px clears the sticky site menu. */
@media(min-width:1000px){
  body.single-post .bofran-sidebar{
    position:sticky; top:100px; align-self:flex-start;
  }
}

/* ---- Table of Contents widget (sidebar) ---- */
body.single-post .elementor-widget-table-of-contents .elementor-toc__header-title{
  font-family:var(--sans); font-size:11px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dk);
}
body.single-post .elementor-toc__list-item-text{ font-family:var(--sans); font-size:14px; color:var(--muted); }
body.single-post .elementor-toc__list-item-text:hover,
body.single-post .elementor-toc__list-item.elementor-item-active > .elementor-toc__list-item-text{ color:var(--gold-dk); }

/* ---- Related Posts (the "Posts" widget on a single post) - cards match the archive ---- */
body.single-post .elementor-widget-posts .elementor-post{
  background:#fff; border:1px solid var(--line); overflow:hidden;
  display:flex; flex-direction:column; transition:box-shadow .25s, transform .25s;
}
body.single-post .elementor-widget-posts .elementor-post:hover{
  box-shadow:0 30px 60px -45px rgba(20,30,50,.5); transform:translateY(-4px);
}
body.single-post .elementor-widget-posts .elementor-post__thumbnail{ aspect-ratio:3/2; overflow:hidden; margin:0; }
body.single-post .elementor-widget-posts .elementor-post__thumbnail img{ width:100%; height:100%; object-fit:cover; }
body.single-post .elementor-widget-posts .elementor-post__text{ padding:22px 22px 26px; }
body.single-post .elementor-widget-posts .elementor-post__meta-data{
  font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--faint); margin:0 0 10px;
}
body.single-post .elementor-widget-posts .elementor-post__title{ font-family:var(--serif); font-size:20px; font-weight:500; line-height:1.25; margin:0 0 10px; }
body.single-post .elementor-widget-posts .elementor-post__title a{ color:var(--ink); }
body.single-post .elementor-widget-posts .elementor-post__title a:hover{ color:var(--gold-dk); }
body.single-post .elementor-widget-posts .elementor-post__excerpt p{ font-family:var(--sans); font-size:14px; font-weight:300; line-height:1.6; color:var(--muted); margin:0; }
body.single-post .elementor-widget-posts .elementor-post__read-more{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dk); }
/* hide share-plugin buttons / comment leftovers that bleed into the cards */
body.single-post .elementor-widget-posts .sharedaddy,
body.single-post .elementor-widget-posts .sd-sharing,
body.single-post .elementor-widget-posts .jp-relatedposts,
body.single-post .elementor-widget-posts .sharing-hidden{ display:none !important; }

/* ---- image placeholder note - delete each one after you drop in the real photo ---- */
body.single-post .bofran-img-note{
  border:1px dashed var(--line-2); background:var(--paper); color:var(--muted);
  font-family:var(--sans); font-size:13.5px; line-height:1.55; padding:12px 16px; margin:26px 0;
}
body.single-post .bofran-img-note strong{ color:var(--gold-dk); }

/* ---- small editorial note (disclaimers, "coming soon" lines) ---- */
body.single-post .bofran-note{
  font-family:var(--sans); font-size:14.5px; font-style:italic; font-weight:300;
  color:var(--muted); border-left:2px solid var(--line-2); padding-left:16px; margin:24px 0;
}

/* ---- closing CTA paragraph ---- */
body.single-post .bofran-cta-note{
  background:var(--bone); border-top:3px solid var(--gold);
  padding:clamp(22px,3vw,30px); margin:44px 0 0;
  font-family:var(--sans); font-size:16px; font-weight:300; line-height:1.75; color:#2A2A2A;
}
body.single-post .bofran-cta-note a{ color:var(--gold-dk); font-weight:600; }

/* ============================================================================
   UNIVERSAL CONTENT ENFORCER - added 2026-07-09
   Old posts were built as individual Elementor pages, each carrying its own
   heading colors/fonts (red H2s, block-caps navy, etc.). These rules use
   !important so the Bofran style wins over ANY per-post styling, making every
   post's content look identical without editing posts one by one.
   Scoped to the content area inside the single-post template only.
   ============================================================================ */
body.single-post .elementor-widget-theme-post-content h1,
body.single-post .elementor-widget-theme-post-content h2,
body.single-post .elementor-widget-theme-post-content .elementor-heading-title:is(h1,h2),
body.single-post .elementor-widget-theme-post-content h1.elementor-heading-title,
body.single-post .elementor-widget-theme-post-content h2.elementor-heading-title{
  font-family:'Cormorant Garamond',Georgia,serif !important;
  font-weight:500 !important; letter-spacing:-0.005em !important;
  font-size:clamp(27px,2.8vw,34px) !important; line-height:1.2 !important;
  color:#1A1A1A !important; text-transform:none !important;
  margin:48px 0 18px !important;
}
body.single-post .elementor-widget-theme-post-content h3,
body.single-post .elementor-widget-theme-post-content h3.elementor-heading-title{
  font-family:'Cormorant Garamond',Georgia,serif !important;
  font-weight:500 !important; font-size:clamp(21px,2.2vw,25px) !important;
  line-height:1.3 !important; color:#1A1A1A !important; text-transform:none !important;
  margin:36px 0 14px !important;
}
body.single-post .elementor-widget-theme-post-content h4,
body.single-post .elementor-widget-theme-post-content h4.elementor-heading-title{
  font-family:'Inter',sans-serif !important; font-weight:600 !important;
  font-size:16px !important; letter-spacing:.02em !important;
  color:#16294A !important; text-transform:none !important; margin:28px 0 12px !important;
}
body.single-post .elementor-widget-theme-post-content p,
body.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor p,
body.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor{
  font-family:'Inter',sans-serif !important; font-size:17.5px !important;
  font-weight:300 !important; line-height:1.85 !important; color:#2A2A2A !important;
}
body.single-post .elementor-widget-theme-post-content li{
  font-family:'Inter',sans-serif !important; font-size:17px !important;
  font-weight:300 !important; line-height:1.7 !important; color:#2A2A2A !important;
}
body.single-post .elementor-widget-theme-post-content a{
  color:#7A5A30 !important; text-decoration:underline !important;
  text-underline-offset:3px !important; text-decoration-thickness:1px !important;
}
body.single-post .elementor-widget-theme-post-content a:hover{ color:#B8965A !important; }
body.single-post .elementor-widget-theme-post-content strong,
body.single-post .elementor-widget-theme-post-content b{
  font-weight:600 !important; color:#1A1A1A !important;
}

/* ============================================================================
   VANILLA-PATH ENFORCER - added 2026-07-16: same rules scoped to plain-rendered
   Elementor-built posts (no Theme Builder template), per the no-Elementor-Pro blog decision
   Old posts were built as individual Elementor pages, each carrying its own
   heading colors/fonts (red H2s, block-caps navy, etc.). These rules use
   !important so the Bofran style wins over ANY per-post styling, making every
   post's content look identical without editing posts one by one.
   Scoped to the content area inside the single-post template only.
   ============================================================================ */
body.single-post [data-elementor-type="wp-post"] h1,
body.single-post [data-elementor-type="wp-post"] h2,
body.single-post [data-elementor-type="wp-post"] .elementor-heading-title:is(h1,h2),
body.single-post [data-elementor-type="wp-post"] h1.elementor-heading-title,
body.single-post [data-elementor-type="wp-post"] h2.elementor-heading-title{
  font-family:'Cormorant Garamond',Georgia,serif !important;
  font-weight:500 !important; letter-spacing:-0.005em !important;
  font-size:clamp(27px,2.8vw,34px) !important; line-height:1.2 !important;
  color:#1A1A1A !important; text-transform:none !important;
  margin:48px 0 18px !important;
}
body.single-post [data-elementor-type="wp-post"] h3,
body.single-post [data-elementor-type="wp-post"] h3.elementor-heading-title{
  font-family:'Cormorant Garamond',Georgia,serif !important;
  font-weight:500 !important; font-size:clamp(21px,2.2vw,25px) !important;
  line-height:1.3 !important; color:#1A1A1A !important; text-transform:none !important;
  margin:36px 0 14px !important;
}
body.single-post [data-elementor-type="wp-post"] h4,
body.single-post [data-elementor-type="wp-post"] h4.elementor-heading-title{
  font-family:'Inter',sans-serif !important; font-weight:600 !important;
  font-size:16px !important; letter-spacing:.02em !important;
  color:#16294A !important; text-transform:none !important; margin:28px 0 12px !important;
}
body.single-post [data-elementor-type="wp-post"] p,
body.single-post [data-elementor-type="wp-post"] .elementor-widget-text-editor p,
body.single-post [data-elementor-type="wp-post"] .elementor-widget-text-editor{
  font-family:'Inter',sans-serif !important; font-size:17.5px !important;
  font-weight:300 !important; line-height:1.85 !important; color:#2A2A2A !important;
}
body.single-post [data-elementor-type="wp-post"] li{
  font-family:'Inter',sans-serif !important; font-size:17px !important;
  font-weight:300 !important; line-height:1.7 !important; color:#2A2A2A !important;
}
body.single-post [data-elementor-type="wp-post"] a{
  color:#7A5A30 !important; text-decoration:underline !important;
  text-underline-offset:3px !important; text-decoration-thickness:1px !important;
}
body.single-post [data-elementor-type="wp-post"] a:hover{ color:#B8965A !important; }
body.single-post [data-elementor-type="wp-post"] strong,
body.single-post [data-elementor-type="wp-post"] b{
  font-weight:600 !important; color:#1A1A1A !important;
}


/* ============================================================================
   BOFRAN - /tips/ blog archive (post listing) styling
   Paste this whole file into Appearance > Customize > Additional CSS, BELOW the
   "BOFRAN - Blog single-post styling" block. It is scoped to the Elementor
   archive template only, so it can only affect the blog listing pages - never
   your other pages, header or footer.

   This restyles the post cards (thumbnail, title, meta, excerpt, read-more) to
   match the Bofran blog design. The navy hero header is a pasted HTML widget -
   see blog-archive-template-BUILD.txt, BLOCK 1 (upgraded 7.20.26: blueprint
   grid, framed jobsite photo, topic strip).
   ============================================================================ */

/* ===== BOFRAN ARCHIVE START ===== */
.elementor-location-archive{
  --navy:#16294A; --gold:#B8965A; --gold-dk:#7A5A30; --yellow:#F5B41F; --ink:#1A1A1A;
  --muted:#6B7280; --faint:#9AA1AC; --line:#E6E8EC; --paper:#FAFAF7;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',sans-serif;
  background:var(--paper);
}

/* 3-across card grid */
.elementor-location-archive .elementor-posts,
.elementor-location-archive .elementor-posts-container{
  display:grid !important; grid-template-columns:repeat(3,1fr); gap:34px;
}

/* the card */
.elementor-location-archive .elementor-post{
  background:#fff; border:1px solid var(--line); margin:0 !important; padding:0 !important;
  overflow:hidden; display:flex; flex-direction:column; position:relative;
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
/* brass bar sweeps across the top of the card on hover */
.elementor-location-archive .elementor-post::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:2;
  background:linear-gradient(90deg,var(--gold),var(--yellow));
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.elementor-location-archive .elementor-post:hover::before{ transform:scaleX(1); }
.elementor-location-archive .elementor-post:hover{
  box-shadow:0 34px 70px -42px rgba(20,30,50,.55); transform:translateY(-4px);
  border-color:#D8DCE2;
}

/* thumbnail - 3:2, brass hairline frame, subtle hover zoom */
.elementor-location-archive .elementor-post__thumbnail{
  aspect-ratio:3/2; overflow:hidden; margin:0 !important; position:relative;
}
.elementor-location-archive .elementor-post__thumbnail::after{
  content:""; position:absolute; inset:0; border:1px solid rgba(184,150,90,.35); pointer-events:none;
}
.elementor-location-archive .elementor-post__thumbnail img{
  width:100%; height:100%; object-fit:cover; transition:transform .5s ease;
}
.elementor-location-archive .elementor-post:hover .elementor-post__thumbnail img{ transform:scale(1.05); }

/* text block */
.elementor-location-archive .elementor-post__text{
  padding:24px 26px 28px; display:flex; flex-direction:column; flex:1;
}
/* meta moves above the title as an eyebrow, brass diamond between items */
.elementor-location-archive .elementor-post__meta-data{
  order:-1; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--faint); margin:0 0 14px; display:flex; gap:14px; align-items:center;
}
.elementor-location-archive .elementor-post__meta-data .elementor-post-author{ color:var(--gold-dk); }
.elementor-location-archive .elementor-post__meta-data span + span{ position:relative; padding-left:12px; }
.elementor-location-archive .elementor-post__meta-data span + span::before{
  content:""; position:absolute; left:0; top:50%; width:4px; height:4px;
  transform:translateY(-50%) rotate(45deg); background:var(--gold);
}
.elementor-location-archive .elementor-post__title{
  font-family:var(--serif); font-weight:500; font-size:22px; line-height:1.25;
  letter-spacing:-0.005em; margin:0 0 12px;
}
/* title: gold ink + an underline that sweeps in on card hover */
.elementor-location-archive .elementor-post__title a{
  color:var(--ink); transition:color .2s, background-size .35s ease;
  background-image:linear-gradient(var(--gold),var(--gold));
  background-repeat:no-repeat; background-size:0% 1px; background-position:0 94%;
}
.elementor-location-archive .elementor-post__title a:hover{ color:var(--gold-dk); }
.elementor-location-archive .elementor-post:hover .elementor-post__title a{ background-size:100% 1px; }
.elementor-location-archive .elementor-post__excerpt{ flex:1; }
.elementor-location-archive .elementor-post__excerpt p{
  font-family:var(--sans); font-size:14.5px; font-weight:300; line-height:1.65; color:var(--muted); margin:0;
}

/* read-more link with a brass arrow */
.elementor-location-archive .elementor-post__read-more-wrapper{ margin-top:18px; }
.elementor-location-archive .elementor-post__read-more{
  font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-dk); border:0; padding:0; display:inline-flex; align-items:center; gap:8px;
}
.elementor-location-archive .elementor-post__read-more::after{ content:"\2192"; transition:transform .2s; }
.elementor-location-archive .elementor-post__read-more:hover{ color:var(--gold); }
.elementor-location-archive .elementor-post:hover .elementor-post__read-more::after{ transform:translateX(4px); }

/* ---- FEATURED FIRST POST - the newest post renders as a big 2-column card ---- */
.elementor-location-archive .elementor-post:first-child{
  grid-column:1 / -1;
  display:grid; grid-template-columns:1.15fr 1fr; align-items:stretch;
  border:1px solid rgba(184,150,90,.5);
}
.elementor-location-archive .elementor-post:first-child .elementor-post__thumbnail__link{
  display:block; height:100%;
}
.elementor-location-archive .elementor-post:first-child .elementor-post__thumbnail{
  aspect-ratio:auto; height:100%; min-height:340px;
}
.elementor-location-archive .elementor-post:first-child .elementor-post__text{
  padding:clamp(26px,3.5vw,44px); justify-content:center;
  background:linear-gradient(135deg,#FFFFFF 0%,#FAF6EE 100%);
}
.elementor-location-archive .elementor-post:first-child .elementor-post__meta-data::before{
  content:"Latest guide"; background:var(--yellow); color:var(--navy);
  padding:5px 10px; letter-spacing:.14em; margin-right:2px; font-weight:700;
}
.elementor-location-archive .elementor-post:first-child .elementor-post__title{
  font-size:clamp(25px,2.6vw,34px); line-height:1.18;
}
.elementor-location-archive .elementor-post:first-child .elementor-post__excerpt p{
  font-size:16px; line-height:1.75;
}

/* hide share-plugin buttons / comment leftovers that bleed into the cards */
.elementor-location-archive .elementor-post .sharedaddy,
.elementor-location-archive .elementor-post .sd-sharing,
.elementor-location-archive .elementor-post .jp-relatedposts{ display:none !important; }

/* archive heading (whatever the template title says) in Cormorant */
.elementor-location-archive h1.elementor-heading-title{ font-family:var(--serif); font-weight:500; }

/* pagination numbers */
.elementor-location-archive .elementor-pagination .page-numbers{
  font-family:var(--sans); font-size:13px; color:var(--muted); padding:8px 13px; border:1px solid var(--line);
  transition:.2s;
}
.elementor-location-archive .elementor-pagination .page-numbers:hover{
  border-color:var(--navy); color:var(--navy);
}
.elementor-location-archive .elementor-pagination .page-numbers.current{
  background:var(--navy); color:#fff; border-color:var(--navy);
}

/* responsive */
@media(max-width:960px){
  .elementor-location-archive .elementor-posts,
  .elementor-location-archive .elementor-posts-container{ grid-template-columns:repeat(2,1fr); gap:26px; }
  /* featured card stacks image-over-text */
  .elementor-location-archive .elementor-post:first-child{ grid-template-columns:1fr; }
  .elementor-location-archive .elementor-post:first-child .elementor-post__thumbnail{
    aspect-ratio:3/2; height:auto; min-height:0;
  }
}
@media(max-width:600px){
  .elementor-location-archive .elementor-posts,
  .elementor-location-archive .elementor-posts-container{ grid-template-columns:1fr; }
}

/* ---- CATEGORY CHIPS (pasted HTML block - see the build sheet) ---- */
.bofran-chips{
  display:flex; flex-wrap:wrap; gap:12px; align-items:center;
  font-family:var(--sans, 'Inter', sans-serif); margin:0 0 34px;
}
.bofran-chips .lbl{
  font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:#9AA1AC; margin-right:6px; display:inline-flex; align-items:center; gap:10px;
}
.bofran-chips .lbl::before{ content:""; width:22px; height:2px; background:#B8965A; }
.bofran-chips a{
  font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:#7A5A30; text-decoration:none; padding:9px 18px;
  border:1px solid #D8DCE2; background:#fff; transition:.2s;
}
.bofran-chips a:hover,
.bofran-chips a.is-active{ background:#16294A; border-color:#16294A; color:#fff; transform:translateY(-1px); }
/* ===== BOFRAN ARCHIVE END ===== */

/* ----------------------------------------------------------------------------
   HERO HEADER: the navy hero ("Building knowledge for Chicago homeowners &
   businesses") is a pasted HTML widget inside the Elementor Archive template - it is NOT in
   this CSS. To update it, open blog-archive-template-BUILD.txt in this folder
   and re-paste BLOCK 1 (and BLOCK 4 for the closing CTA band) into their HTML
   widgets. Upgraded 7.20.26: blueprint-grid texture, gold glow, framed jobsite
   photo with "Since 1999" plaque, topic strip under the intro.
   ---------------------------------------------------------------------------- */

/* ============================================================================
   ARCHIVE ENFORCER - added 2026-07-09
   The old archive template sets its own typography at widget level, which
   outranks normal CSS. These !important rules force the Bofran card style
   (Cormorant titles, Inter text) no matter what the widget settings say.
   ============================================================================ */
.elementor-location-archive .elementor-post__title,
.elementor-location-archive .elementor-post__title a{
  font-family:'Cormorant Garamond',Georgia,serif !important;
  font-weight:500 !important; font-size:22px !important; line-height:1.25 !important;
  letter-spacing:-0.005em !important; color:#1A1A1A !important; text-transform:none !important;
}
.elementor-location-archive .elementor-post__title a:hover{ color:#7A5A30 !important; }
.elementor-location-archive .elementor-post:first-child .elementor-post__title,
.elementor-location-archive .elementor-post:first-child .elementor-post__title a{
  font-size:clamp(25px,2.6vw,34px) !important; line-height:1.18 !important;
}
.elementor-location-archive .elementor-post__excerpt p{
  font-family:'Inter',sans-serif !important; font-size:14.5px !important;
  font-weight:300 !important; line-height:1.65 !important; color:#6B7280 !important;
}
.elementor-location-archive .elementor-post__meta-data,
.elementor-location-archive .elementor-post__meta-data span{
  font-family:'Inter',sans-serif !important; font-size:11px !important;
  font-weight:600 !important; letter-spacing:.1em !important; text-transform:uppercase !important;
}
.elementor-location-archive .elementor-post__read-more{
  font-family:'Inter',sans-serif !important; font-size:11px !important;
  font-weight:600 !important; letter-spacing:.14em !important;
  text-transform:uppercase !important; color:#7A5A30 !important;
}
/* hide the awkward "." separator the widget prints between meta items */
.elementor-location-archive .elementor-post__meta-data .elementor-post-avatar{ display:none !important; }

/* ============================================================
   BOFRAN — SITE-WIDE READABILITY & SAFARI FIX
   Added 2026-07-25

   WHERE THIS GOES:
   Appearance → Customize → Additional CSS.
   PASTE IT AT THE VERY BOTTOM, BELOW the existing Envato
   "Block Kit" (.envato-kit-*) rules. Never delete those.

   WHY THE SELECTORS LOOK ODD:
   Each page's own CSS is printed inside the Elementor HTML
   widget, which sits in the page BODY — i.e. AFTER this file
   loads in the HEAD. At equal specificity the page would win,
   so these rules are deliberately written stronger (leading
   `body` + `!important`) to override it. That is the whole
   point of this file; do not "simplify" the selectors.

   WHAT IT DOES NOT TOUCH:
   - .eyebrow (11px) and .btn (11–11.5px) — locked design-system specs
   - ::before checkmark glyphs and SVG diagram labels — those are
     icons sized in px, not reading text; bumping them breaks the art
   - Any wording, heading, title or layout dimension
   ============================================================ */

/* --- 1. CONTRAST: the washed-out gray failed WCAG AA ---------
   --faint was #9AA1AC = 2.60:1 on white (AA needs 4.5:1).
   This single line is the biggest readability win on the site:
   it darkens every caption, tagline and table header at once,
   with zero layout change. New value = 4.97:1. */
body [class*="bofran-"]{ --faint:#667085; }

/* --- 2. Stop Safari/iOS re-scaling text on its own ---------- */
body [class*="bofran-"]{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }

/* --- 3. THE SAFARI DROPDOWN BUG -----------------------------
   Pages set `appearance:none` on <select> without the -webkit-
   prefix. Safari before 15.4 ignores unprefixed `appearance`, so
   the dropdown falls back to the native macOS control — visibly
   narrower, with a smaller system font. This is the concrete
   "small and narrow in Safari, fine in Chrome" defect. */
body [class*="bofran-"] select{
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  appearance:none !important;
}
/* Safari also drops to ~11px system UI font on form controls
   unless told otherwise. */
body [class*="bofran-"] select,
body [class*="bofran-"] input,
body [class*="bofran-"] textarea{
  font-family:inherit !important;
  font-size:16px !important;   /* 16px also stops iOS zoom-on-focus */
}

/* --- 4. FONT-SIZE FLOOR -------------------------------------
   Raises text that was 9–12px. Grouped by what the element is,
   so the visual hierarchy is preserved — everything moves up a
   step, nothing is flattened. */

/* 4a. Uppercase, letter-spaced micro-labels: 10–11px → 12.5px */
body [class*="bofran-"] table.ctab th,
body [class*="bofran-"] table.vs-table th,
body [class*="bofran-"] table.costs thead th,
body [class*="bofran-"] .calc-result .rlabel,
body [class*="bofran-"] .type-meta div span,
body [class*="bofran-"] .pick-facts div span,
body [class*="bofran-"] .step-cols div span,
body [class*="bofran-"] .step .wks,
body [class*="bofran-"] .stats .lbl,
body [class*="bofran-"] .verdict .vlabel,
body [class*="bofran-"] .tier-links .lbl,
body [class*="bofran-"] .tier-links a .ext,
body [class*="bofran-"] .res-card .tag,
body [class*="bofran-"] .ba-tag,
body [class*="bofran-"] .work-cap span,
body [class*="bofran-"] .w-crumb{ font-size:12.5px !important; }

/* 4b. Helper text under a control or number: 10.5–12px → 13px */
body [class*="bofran-"] .finish-opt small,
body [class*="bofran-"] .pick-item small,
body [class*="bofran-"] .gloss-q small,
body [class*="bofran-"] .w-org small,
body [class*="bofran-"] .sib .tagline,
body [class*="bofran-"] .router-card .tagline,
body [class*="bofran-"] .pick-panel .tagline,
body [class*="bofran-"] .anat-info .tagline,
body [class*="bofran-"] .router-card .go,
body [class*="bofran-"] .tier-name .mult,
body [class*="bofran-"] .crumb{ font-size:13px !important; }

/* 4c. Form field labels: 12px → 13px, and give them breathing room */
body [class*="bofran-"] .calc-field > label,
body [class*="bofran-"] .fit-check-controls label{
  font-size:13px !important; letter-spacing:.08em !important;
}

/* 4d. Real reading text that was set far too small: → 13.5–14px */
body [class*="bofran-"] .subnav a,
body [class*="bofran-"] .estimate-copy .callrow small,
body [class*="bofran-"] .cta-band .callrow small,
body [class*="bofran-"] .est-form .fine,
body [class*="bofran-"] .rem-form .fine{ font-size:13.5px !important; }

body [class*="bofran-"] .calc-note,
body [class*="bofran-"] .step-cols ul li,
body [class*="bofran-"] table.vs-table td .win{ font-size:14px !important; }

/* 4e. The 12.5px caption tier used across pages → 14px */
body [class*="bofran-"] .cost-card .sub,
body [class*="bofran-"] .scope-c .sub,
body [class*="bofran-"] .finish-help,
body [class*="bofran-"] .cta .fine{ font-size:14px !important; }

/* --- 5. Line-height so the bigger text still breathes -------- */
body [class*="bofran-"] .finish-opt small,
body [class*="bofran-"] .pick-item small,
body [class*="bofran-"] .calc-note{ line-height:1.45 !important; }
