/* Ray Arnold custom CSS.
   Loaded after style.css by functions.php.
   Kept out of style.css so Theme File Editor saves cannot wipe it. */

/* Why Choose accordion: white minus on the blue circle when open */
.why-choose-accordion .sow-accordion-close-button span{color:#ffffff !important;}


/* Our Process: auto-numbered steps. Number uses ::after (::before draws the circle) */
.process-features .sow-features-list{
	counter-reset:process-step;
	display:block !important;
	column-count:2;
	column-gap:60px;
}
.process-features .sow-features-feature{
	counter-increment:process-step;
	width:100% !important;
	break-inside:avoid;
	-webkit-column-break-inside:avoid;
	margin:0 0 55px !important;
	text-align:left;
	position:relative;
	max-width: 430px;
	gap: 1.5em;
}
.process-features .sow-icon-container::after{
	content:counter(process-step);
	position:absolute;
	top:0;left:0;right:0;bottom:0;
	display:flex;align-items:center;justify-content:center;
	font-family: Open Sans, sans-serif;
	color: black;
	font-size:22px;
	font-weight:700;
	line-height:1;
}
.process-features .sow-features-feature .textwidget{padding-top:4px;}
/* Full chain needed to beat widget's own CSS */
.process-features .sow-features-list .sow-features-feature .sow-features-feature-title{
	margin:0 0 10px;
	font-size:20px;
	font-weight:700;
	line-height:1.35;
	color:#1f1a17;
}
.process-features .sow-features-list .sow-features-feature .sow-features-feature-text,
.process-features .sow-features-list .sow-features-feature .sow-features-feature-text p{
	font-size:15px;
	line-height:1.85;
	color:#4a4038;
}
/* Step line. nth-child(3n) = steps per column; update if step count changes */
.process-features .sow-features-feature::after{
	content:'';
	position:absolute;
	left:29px;
	top:68px;
	bottom:-55px;
	width:1px;
	background:#fff;
	z-index:0;
}
.process-features .sow-features-feature:nth-child(3n)::after{display:none;}

@media (max-width:780px){
	.services-tabs .sow-tabs-tab-container{width:100%;}
	h1.sow-headline{font-size: 3em !important;}
	h2.sow-headline, h2.sow-sub-headline{font-size: 2.6em !important;}
	.header-widget{display: none !important;}
}

/* Tablet: 2 columns, icon stays left. Overrides the widget's own stacked/centered
   mobile styles, which otherwise kick in at 780px and catch 768px tablets. */
@media (min-width:601px) and (max-width:1024px){
	.process-features .sow-features-list{column-count:2;column-gap:32px;}
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature{
		flex-direction:row !important;
		width:100% !important;
		max-width:none;
		text-align:left !important;
	}
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .sow-icon-container{
		width:auto !important;
		flex:0 0 60px !important;
		justify-content:flex-start !important;
	}
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .textwidget,
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .sow-features-feature-title,
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .sow-features-feature-text{
		text-align:left !important;
	}
}
/* Phone: 1 column, but keep the PC look - icon left, text left, line intact */
@media (max-width:600px){
	.process-features .sow-features-list{column-count:1;}
	.process-features .sow-features-feature{max-width:none;}
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature{
		flex-direction:row !important;
		width:100% !important;
		text-align:left !important;
	}
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .sow-icon-container{
		width:auto !important;
		flex:0 0 60px !important;
		justify-content:flex-start !important;
	}
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .textwidget,
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .sow-features-feature-title,
	.process-features .sow-features-list.sow-features-responsive li.sow-features-feature .sow-features-feature-text{
		text-align:left !important;
	}
	/* One column now, so only the last step drops the line */
	.process-features .sow-features-feature:nth-child(3n)::after{display:block;}
	.process-features .sow-features-feature:last-child::after{display:none;}
	.sow-tabs .sow-tabs-panel-container .sow-tabs-panel {
		padding: 2em 1em !important;
	}
	.ow-button-base .sowb-button{padding-inline: 2em !important;}
}

/* Featured Projects slider: numbered pagination. Hero slider keeps dots */
.featured-projects-slider .sow-slider-base .sow-slider-pagination{
	counter-reset:fp-slide;
	position:static;
	bottom:auto;
	width:100%;
	padding:0;
	margin-top:20px;
	text-align:center;
	font-size:15px;
	line-height:1;
}
.featured-projects-slider .sow-slider-base .sow-slider-pagination li{
	counter-increment:fp-slide;
	margin:0 5px;
}
.featured-projects-slider .sow-slider-base .sow-slider-pagination li a{
	display:inline-block;
	background:transparent;
	border-radius:10px;
	width:auto;
	height:auto;
	text-indent:0;
	opacity:1;
	font-size:15px;
	font-weight:700;
	line-height:1;
	color:#292929;
	padding:9px 14px;
	text-shadow:none;
}
.featured-projects-slider .sow-slider-base .sow-slider-pagination li a::before{
	content:counter(fp-slide);
}
.featured-projects-slider .sow-slider-base .sow-slider-pagination li.sow-active a{
	background:#751818;
	color:#ffffff;
	text-decoration:none;
}
/* Testimonial cards */
.testimonial-card{
	background:#f2ede6;
	border:1px solid transparent;
	border-radius:4px;
	padding:30px;
	height:100%;
	box-sizing:border-box;
	transition:background .25s ease,border-color .25s ease;
}
.testimonial-card:hover{background:#ffffff;border-color:#751818;}
.testimonial-stars{color:#e0912f;font-size:14px;letter-spacing:4px;margin-bottom:16px;line-height:1;}
.testimonial-quote{font-style:italic;color:#6f6a63;font-size:15px;line-height:1.75;margin:0 0 22px;}
.testimonial-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;}
.testimonial-person{display:flex;flex-direction:column;gap:3px;}
.testimonial-name{font-weight:700;color:#2b2420;font-size:14px;}

.testimonial-meta{color:#8a8074;font-size:13px;}
.testimonial-tag{
	background:#dce9f3;
	color:#5b87ab;
	font-size:11px;
	font-weight:600;
	letter-spacing:.08em;
	text-transform:uppercase;
	padding:7px 13px;
	border-radius:3px;
	white-space:nowrap;
}

/* Featured Projects slider: keep image aspect below desktop.
   Wrapper is flex with a fixed height; drop both so the image can scale,
   and clear min-width so the flex item can shrink under the image's width. */
@media (max-width:1024px){
	.featured-projects-slider .sow-slider-base ul.sow-slider-images .sow-slider-image-wrapper{
		display:block !important;
		height:auto !important;
		max-width:100% !important;
	}
	.featured-projects-slider .sow-slider-image-foreground-wrapper{
		min-width:0 !important;
		width:100% !important;
	}
	.featured-projects-slider .sow-slider-foreground-image,
	.featured-projects-slider .sow-slider-background-image{
		display:block !important;
		width:100% !important;
		height:auto !important;
		max-width:100% !important;
		max-height:none !important;
	}
}

/* 3P Guarantee hover cards: 2 cols tablet, 1 col phone */
@media (min-width:601px) and (max-width:1024px){
	.guarantee-cards .panel-grid{flex-direction:row !important;flex-wrap:wrap !important;}
	.guarantee-cards .panel-grid-cell{width:calc(50% - 15px) !important;margin-bottom:30px;}
}
@media (max-width:600px){
	.guarantee-cards .panel-grid-cell{width:100% !important;margin-right:0 !important;}
}
.hcw-card,.hcw-s2-card{max-width:100%;}

/* Stats bar: 2 columns on tablet and phone.
   flex-direction must be forced back to row; SiteOrigin sets column at mobile widths. */
@media (max-width:1024px){
	.stats-row{flex-direction:row !important;flex-wrap:wrap !important;}
	.stats-row > .panel-grid-cell{width:50% !important;margin-right:0 !important;margin-bottom:28px;}
}

/* Community page sliders: solid triangle arrows, no dots */
.community-slider .sow-slider-base{overflow:visible !important;}
.community-slider .sow-slider-base .sow-slider-pagination{display:none !important;}
.community-slider .sow-slider-base .sow-slide-nav{display:block !important;opacity:1;}
.community-slider .sow-slider-base .sow-slide-nav a{padding:10px;}
.community-slider .sow-slider-base .sow-slide-nav a em{display:none;}
.community-slider .sow-slider-base .sow-slide-nav a::before{
	content:'';
	display:block;
	width:0;
	height:0;
	border-top:12px solid transparent;
	border-bottom:12px solid transparent;
}
.community-slider .sow-slider-base .sow-slide-nav.sow-slide-nav-prev{left:-24px;}
.community-slider .sow-slider-base .sow-slide-nav.sow-slide-nav-next{right:-24px;}
.community-slider .sow-slider-base .sow-slide-nav.sow-slide-nav-prev a::before{border-right:14px solid #751818;}
.community-slider .sow-slider-base .sow-slide-nav.sow-slide-nav-next a::before{border-left:14px solid #751818;}
@media (max-width:780px){
	.community-slider .sow-slider-base .sow-slide-nav.sow-slide-nav-prev{left:0;}
	.community-slider .sow-slider-base .sow-slide-nav.sow-slide-nav-next{right:0;}
}

/* ============ Contact form (Gravity Forms, legacy markup) ============ */
/* Scoped by the form's own CSS class, set in the form settings */
.ray-contact-form_wrapper{margin:0;}
.ray-contact-form_wrapper .gform_fields{margin:0;padding:0;}

/* Tighter vertical rhythm between rows */
.ray-contact-form_wrapper ul.gform_fields li.gfield{
	margin:0 0 14px !important;
	padding-right:0 !important;
}
.ray-contact-form_wrapper ul.gform_fields li.gfield:last-child{margin-bottom:0 !important;}

/* Placeholders carry the labels, so hide the label and asterisk.
   The select keeps its label - handled further down. */
.ray-contact-form_wrapper .gfield_required{display:none !important;}

/* Flat grey inputs */
.ray-contact-form_wrapper input[type=text],
.ray-contact-form_wrapper input[type=email],
.ray-contact-form_wrapper input[type=tel],
.ray-contact-form_wrapper input[type=url],
.ray-contact-form_wrapper input[type=number],
.ray-contact-form_wrapper textarea,
.ray-contact-form_wrapper select{
	width:100% !important;
	box-sizing:border-box !important;
	background:#ebebeb !important;
	border:0 !important;
	border-radius:2px !important;
	padding:12px 14px !important;
	margin:0 !important;
	font-size:15px !important;
	line-height:1.4 !important;
	color:#292929 !important;
	box-shadow:none !important;
}
.ray-contact-form_wrapper input:focus,
.ray-contact-form_wrapper textarea:focus,
.ray-contact-form_wrapper select:focus{
	background:#e4e4e4 !important;
	outline:2px solid rgba(117,24,24,.35);
	outline-offset:0;
}
.ray-contact-form_wrapper ::placeholder{color:#4a4a4a;opacity:1;}
.ray-contact-form_wrapper textarea{height:104px !important;resize:vertical;}

/* Column gutters for the name / address sub-field grids and half-width rows */
.ray-contact-form_wrapper .ginput_complex.gform-grid-row{
	display:flex !important;
	flex-wrap:wrap;
	gap:14px;
	margin:0 !important;
}
.ray-contact-form_wrapper .ginput_complex .gform-grid-col{
	padding:0 !important;
	margin:0 !important;
	min-width:0;
	flex:1 1 0;
}
/* GF tags the sub-fields left/right/full; honouring that puts Street on its
   own row, City+State paired, and ZIP alone on the next row. */
.ray-contact-form_wrapper .ginput_complex .ginput_full{flex:1 1 100%;}
.ray-contact-form_wrapper .ginput_complex .ginput_left,
.ray-contact-form_wrapper .ginput_complex .ginput_right{flex:0 1 calc(50% - 7px);}

/* Email / Phone half-width pair */
.ray-contact-form_wrapper ul.gform_fields li.gfield.gf_left_half,
.ray-contact-form_wrapper ul.gform_fields li.gfield.gf_right_half{
	width:calc(50% - 7px) !important;
	float:none !important;
	display:inline-block;
	vertical-align:top;
}
.ray-contact-form_wrapper ul.gform_fields li.gfield.gf_left_half{margin-right:14px !important;}

/* Visible label, used only by "How did you hear about us?" */
.ray-contact-form_wrapper .gfield_label{
	display:block;
	margin:0 0 8px;
	font-size:15px;
	font-weight:700;
	color:#1f1a17;
}
.ray-contact-form_wrapper .hidden_label .gfield_label,
.ray-contact-form_wrapper .screen-reader-text{
	position:absolute !important;
	width:1px;height:1px;
	overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);
	white-space:nowrap;
}

/* Select: flat grey with its own chevron */
.ray-contact-form_wrapper select{
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	padding-right:38px !important;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23292929' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat:no-repeat !important;
	background-position:right 13px center !important;
	background-size:16px 16px !important;
}

/* Submit */
.ray-contact-form_wrapper .gform_footer{margin:22px 0 0 !important;padding:0 !important;}
.ray-contact-form_wrapper .gform_footer input[type=submit],
.ray-contact-form_wrapper .gform_footer button.gform_button,
.ray-contact-form_wrapper .gform_footer button[type=submit]{
	width:auto !important;
	background:#751818 !important;
	color:#ffffff !important;
	border:0 !important;
	border-radius:2px !important;
	padding:13px 30px !important;
	margin:0 !important;
	font-size:15px !important;
	font-weight:600 !important;
	line-height:1 !important;
	text-transform:none !important;
	cursor:pointer;
	transition:background .2s ease;
}
.ray-contact-form_wrapper .gform_footer input[type=submit]:hover,
.ray-contact-form_wrapper .gform_footer button.gform_button:hover,
.ray-contact-form_wrapper .gform_footer button[type=submit]:hover{background:#5a1212 !important;}

/* Honeypot must stay hidden */
.ray-contact-form_wrapper .gform_validation_container{display:none !important;}

@media (max-width:600px){
	.ray-contact-form_wrapper ul.gform_fields li.gfield.gf_left_half,
	.ray-contact-form_wrapper ul.gform_fields li.gfield.gf_right_half{
		width:100% !important;margin-right:0 !important;
	}
	.ray-contact-form_wrapper .ginput_complex .address_zip{flex:1 1 100%;}
}
