/* ==========================================================================
   Pool Fence Inspector Melbourne - styling enhancements (enfold-child)
   ========================================================================== */

:root {
	--pfi-blue: #0188c7;
	--pfi-blue-dark: #016a9b;
	--pfi-aqua: #11c3e2;
	--pfi-ink: #222222;
	--pfi-radius: 10px;
	--pfi-shadow: 0 10px 30px rgba(1, 60, 90, 0.10);
	--pfi-shadow-hover: 0 18px 40px rgba(1, 60, 90, 0.18);
	--pfi-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Header ---------- */
#header .header_bg { transition: background-color 0.4s ease, box-shadow 0.4s ease; }
body.pfi-scrolled #header .header_bg { box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); }
.av-hamburger-inner,
.av-hamburger-inner::before,
.av-hamburger-inner::after { border-radius: 2px; }

/* ---------- Hero ---------- */
#top .avia-fullwidth-slider .avia-slide-wrap { overflow: hidden; }
#top .avia-fullwidth-slider .avia-slide-wrap > img {
	animation: pfi-kenburns 22s ease-in-out infinite alternate;
	transform-origin: 50% 60%;
	will-change: transform;
}
@keyframes pfi-kenburns {
	from { transform: scale(1); }
	to   { transform: scale(1.08); }
}
#top .caption_framed .slideshow_caption .avia-caption-title,
#top .caption_framed .slideshow_caption .avia-caption-content p {
	background: rgba(0, 30, 50, 0.45);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-radius: 6px;
	padding: 6px 18px;
	letter-spacing: 0.02em;
}
#top .caption_framed .slideshow_caption .avia-caption-title { text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25); }
#top .avia-slideshow-button {
	border-radius: 999px;
	padding: 15px 28px;
	letter-spacing: 0.06em;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
	transition: transform 0.3s var(--pfi-ease), box-shadow 0.3s var(--pfi-ease), background-color 0.3s ease;
}
#top .avia-slideshow-button:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28); }

/* ---------- Headings ---------- */
#top .av-special-heading .av-special-heading-tag { letter-spacing: 0.02em; }
#top .av-special-heading .av-special-heading-tag strong { color: var(--pfi-blue); }
#top .hr-custom .hr-inner { border-radius: 3px; }

/* ---------- Buttons ---------- */
#top .avia-button {
	border-radius: 999px;
	padding-left: 26px;
	padding-right: 26px;
	letter-spacing: 0.04em;
	transition: transform 0.3s var(--pfi-ease), box-shadow 0.3s var(--pfi-ease), background-color 0.3s ease, color 0.3s ease;
}
#top .avia-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(1, 136, 199, 0.28); }
#top .avia-button.avia-color-light:hover { background: #ffffff; color: var(--pfi-ink); box-shadow: 0 10px 22px rgba(0, 0, 0, 0.25); }

/* ---------- Icon boxes (feature boxes + process steps) ---------- */
#top .iconbox_top .iconbox_content {
	border-radius: var(--pfi-radius);
	box-shadow: var(--pfi-shadow);
	transition: transform 0.4s var(--pfi-ease), box-shadow 0.4s var(--pfi-ease);
}
#top .iconbox_top:hover .iconbox_content { transform: translateY(-6px); box-shadow: var(--pfi-shadow-hover); }
#top .iconbox_top .iconbox_icon {
	box-shadow: 0 6px 16px rgba(1, 136, 199, 0.18);
	transition: background-color 0.35s ease, color 0.35s ease, transform 0.5s var(--pfi-ease);
}
#top .iconbox_top:hover .iconbox_icon {
	background-color: var(--pfi-blue) !important;
	color: #ffffff !important;
	transform: translateY(-6px) rotate(-6deg) scale(1.06);
}
#about .iconbox_top { margin-bottom: 10px; }
#process .flex_column .avia-button-wrap { margin-top: 18px; }

/* ---------- Requirements list ---------- */
#requirements .avia_textblock ul {
	list-style: none;
	margin: 0 auto;
	max-width: 900px;
	display: grid;
	gap: 14px;
}
#requirements .avia_textblock li {
	position: relative;
	margin: 0;
	padding: 16px 20px 16px 58px;
	background: #f6fafc;
	border: 1px solid #e3eef4;
	border-radius: var(--pfi-radius);
	line-height: 1.6;
	transition: transform 0.3s var(--pfi-ease), box-shadow 0.3s var(--pfi-ease), border-color 0.3s ease;
}
#requirements .avia_textblock li::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 18px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--pfi-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 14px no-repeat;
}
#requirements .avia_textblock li:hover { transform: translateX(4px); border-color: #bfe0ef; box-shadow: var(--pfi-shadow); }

/* ---------- Self-assessment panels ---------- */
#self-assessment .flex_cell { position: relative; overflow: hidden; }
#self-assessment .flex_cell::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0) 60%);
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}
#self-assessment .flex_cell:hover::after { opacity: 1; }

/* ---------- Pricing cards ---------- */
#pricing .flex_column[class*="av_one_third"] {
	border-radius: var(--pfi-radius) !important;
	box-shadow: var(--pfi-shadow);
	transition: transform 0.4s var(--pfi-ease), box-shadow 0.4s var(--pfi-ease);
}
#pricing .flex_column[class*="av_one_third"]:hover { transform: translateY(-8px); box-shadow: var(--pfi-shadow-hover); }
#pricing .flex_column_table { border-spacing: 0; }

/* ---------- About / service area ---------- */
#about-us .flex_column:last-child { border-radius: var(--pfi-radius); }
#about-us .pfi-suburbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
#about-us .pfi-suburbs span {
	display: inline-block;
	padding: 6px 14px;
	background: #ffffff;
	border: 1px solid #d6e9f2;
	border-radius: 999px;
	font-size: 14px;
	line-height: 1.4;
	color: #2b4f60;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
#about-us .pfi-suburbs span:hover { background: var(--pfi-blue); border-color: var(--pfi-blue); color: #ffffff; }
#about-us .pfi-suburbs-note { margin-top: 14px; }
#about-us img[src*="bpc-"] { margin-top: 10px; }

/* ---------- Contact form ---------- */
#contact .avia_ajax_form input.text_input,
#contact .avia_ajax_form textarea {
	border-radius: 8px;
	border: 1px solid #d5dde2;
	background: #ffffff;
	padding: 13px 14px;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
#contact .avia_ajax_form input.text_input:focus,
#contact .avia_ajax_form textarea:focus {
	border-color: var(--pfi-blue);
	box-shadow: 0 0 0 4px rgba(1, 136, 199, 0.15);
	outline: none;
}
#contact .avia_ajax_form label { font-weight: 600; letter-spacing: 0.02em; }
#contact .avia_ajax_form input.button {
	border-radius: 999px;
	padding: 15px 36px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 700;
	transition: transform 0.3s var(--pfi-ease), box-shadow 0.3s var(--pfi-ease), background-color 0.3s ease;
}
#contact .avia_ajax_form input.button:hover {
	background-color: var(--pfi-blue-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(1, 136, 199, 0.3);
}

/* ---------- Footer ---------- */
#footer .widgettitle { letter-spacing: 0.06em; }
#footer a { transition: color 0.25s ease; }
#footer a:hover { color: var(--pfi-aqua); }
#scroll-top-link {
	background-color: var(--pfi-blue);
	color: #ffffff;
	border-radius: 50%;
	transition: transform 0.3s var(--pfi-ease), background-color 0.3s ease;
}
#scroll-top-link:hover { transform: translateY(-3px); background-color: var(--pfi-blue-dark); }

/* ---------- Scroll reveal (only when JS is running) ---------- */
html.pfi-js .pfi-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.8s var(--pfi-ease), transform 0.8s var(--pfi-ease);
	transition-delay: var(--pfi-delay, 0s);
}
html.pfi-js .pfi-reveal.pfi-zoom { transform: scale(0.94); }
html.pfi-js .pfi-reveal.is-visible { opacity: 1; transform: none; }

/* Heading underline draws in */
html.pfi-js .hr-custom.pfi-reveal { opacity: 1; transform: none; }
html.pfi-js .hr-custom.pfi-reveal .hr-inner { transform: scaleX(0); transition: transform 0.9s var(--pfi-ease) 0.2s; }
html.pfi-js .hr-custom.pfi-reveal.is-visible .hr-inner { transform: scaleX(1); }

/* ---------- Mobile ---------- */
@media only screen and (max-width: 767px) {
	/* taller hero on phones so the caption and buttons fit */
	#top .avia-fullwidth-slider .avia-slideshow-inner { height: 460px !important; }
	#top .avia-fullwidth-slider .avia-slideshow-inner > li,
	#top .avia-fullwidth-slider .avia-slide-wrap { height: 100%; }
	#top .avia-fullwidth-slider .avia-slide-wrap > img { width: 100%; height: 100%; object-fit: cover; }
	#top .avia-slideshow .av-slideshow-caption .avia-caption-content,
	#top .avia-slideshow .av-slideshow-caption .avia-caption-content p { display: block !important; font-size: 15px !important; }
	#top .avia-slideshow-button { padding: 11px 18px; font-size: 11px; margin-top: 10px; }
	#process .flex_column { margin-bottom: 40px; }
	#about .flex_column { margin-bottom: 20px; }
	#pricing .flex_column[class*="av_one_third"] { margin-bottom: 24px; }
	#requirements .avia_textblock li { padding-left: 52px; }
}

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	#top .avia-fullwidth-slider .avia-slide-wrap > img { animation: none; }
	html.pfi-js .pfi-reveal,
	html.pfi-js .hr-custom.pfi-reveal .hr-inner { opacity: 1 !important; transform: none !important; transition: none !important; }
	#top .iconbox_top:hover .iconbox_content,
	#top .iconbox_top:hover .iconbox_icon,
	#pricing .flex_column:hover,
	#top .avia-button:hover { transform: none; }
}
