/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/*=========================================
---------------- GENERAL ----------------*/

.footer-socials img {
    width: 34px !important;
    height: auto;
}

#footer-widgets .gform_title{
    color: #f2bf59;
}

.separate-containers .inside-article{
    padding: 0px !important;
}

.separate-containers .site-main {
    margin: 0px !important;
}


.gb-element-c1733961 {
	width: 100%;
	min-height: 100vh;
	background-size: cover;
	background-position: center;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
}

/* Columns: default keeps short columns visually centered */
.wp-block-columns {
	align-items: center;
}

/* Rows with .container-right: stretch so the text column matches image height */
.wp-block-columns:has(.container-right) {
	align-items: stretch;
}

.wp-block-column.container-right {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 0;
}

/* flip-mobile: image above text when columns stack — class on Columns or any Column */
@media screen and (max-width: 768px) {
	.wp-block-columns.flip-mobile,
	.wp-block-columns:has(> .wp-block-column.flip-mobile) {
		flex-direction: column-reverse;
	}
}

/* "Find out more" pill + arrow — any GenerateBlocks uniqueId under .container-right */
.gb-text-cba0c762,
.wp-block-column.container-right a[class*="gb-text-"],
.wp-block-column.container-right a.gb-button,
.wp-block-column.container-right .wp-block-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	width: fit-content;
	max-width: 100%;
	padding: 14px 75px 14px 28px !important;
	border-radius: 999px;
	background: #005f86;
	color: #fff !important;
	text-decoration: none;
	box-sizing: border-box;
}

.gb-text-cba0c762:after,
.wp-block-column.container-right a[class*="gb-text-"]:after,
.wp-block-column.container-right a.gb-button:after,
.wp-block-column.container-right .wp-block-button__link:after {
	content: "↗";
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #005f86;
	font-size: 22px;
	font-weight: 700;
}

/* Core / GB wrappers so the control does not stretch full column width */
.wp-block-column.container-right .wp-block-buttons,
.wp-block-column.container-right .gb-button-wrapper {
	align-self: flex-start;
	width: fit-content;
	max-width: 100%;
}

/*
 * GenerateBlocks: banner headline + gold rule (literal quotes stripped in inc/banner-hero-text.php).
 * Gold rule on the <p> uses background (not ::before) so it is not clipped by GB overflow/stacking.
 */
.hw-gb-banner-text,
.gb-element-c1733961:not(.hw-gb-banner-text) .gb-inside-container:has(> p[class*="gb-text"]),
.gb-element-c1733961:not(.hw-gb-banner-text) .gb-inside-container:has(> .gb-headline) {
	--hw-gb-banner-accent: #f2bf59;
	max-width: min(94vw, 860px);
	margin-inline: auto;
	text-align: left;
}

.hw-gb-banner-text .gb-inside-container:has(> p[class*="gb-text"]),
.hw-gb-banner-text .gb-inside-container:has(> .gb-headline) {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35em;
	text-align: left;
}

.gb-element-c1733961:not(.hw-gb-banner-text) .gb-inside-container:has(> p[class*="gb-text"]),
.gb-element-c1733961:not(.hw-gb-banner-text) .gb-inside-container:has(> .gb-headline) {
	position: relative;
	padding-left: clamp(48px, 7vw, 76px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35em;
	text-align: left;
}

.gb-element-c1733961:not(.hw-gb-banner-text) .gb-inside-container:has(> p[class*="gb-text"])::before,
.gb-element-c1733961:not(.hw-gb-banner-text) .gb-inside-container:has(> .gb-headline)::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5lh;
	width: clamp(32px, 5vw, 52px);
	height: clamp(2px, 0.14em, 3px);
	transform: translateY(-50%);
	background: var(--hw-gb-banner-accent, #f2bf59);
	border-radius: 1px;
	z-index: 1;
	pointer-events: none;
}

.hw-gb-banner-text p.gb-text,
.hw-gb-banner-text p[class*="gb-text"] {
	position: relative;
	padding-left: clamp(52px, 8vw, 88px);
	padding-top: 0;
	padding-bottom: 0;
	box-sizing: border-box;
	background-image: linear-gradient(var(--hw-gb-banner-accent, #f2bf59), var(--hw-gb-banner-accent, #f2bf59));
	background-size: clamp(36px, 5.5vw, 56px) clamp(2px, 0.14em, 3px);
	background-repeat: no-repeat;
	background-position: 0 calc(0.55em - clamp(1px, 0.07em, 2px));
}

.hw-gb-banner-text .gb-headline,
.hw-gb-banner-text .gb-headline a,
.hw-gb-banner-text .gb-headline .gb-headline-text,
.hw-gb-banner-text p.gb-text,
.hw-gb-banner-text p[class*="gb-text"],
.hw-gb-banner-text a.gb-text,
.gb-element-c1733961 .gb-inside-container:has(> p[class*="gb-text"]) p[class*="gb-text"],
.gb-element-c1733961 .gb-inside-container:has(> p[class*="gb-text"]) a.gb-text,
.gb-element-c1733961 .gb-inside-container:has(> .gb-headline) .gb-headline,
.gb-element-c1733961 .gb-inside-container:has(> .gb-headline) .gb-headline a,
.gb-element-c1733961 .gb-inside-container:has(> .gb-headline) .gb-headline .gb-headline-text {
	font-size: clamp(0.88rem, 2.1vw + 0.45rem, 1.5rem);
	line-height: 1.3;
	font-weight: 600;
	font-style: italic;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
	text-align: left;
}

.hw-gb-banner-text .gb-headline a,
.gb-element-c1733961 .gb-inside-container:has(> .gb-headline) .gb-headline a {
	text-decoration: none;
}

/*
 * Advisory / services band — class hw-gb-advisory-lead (often on gb-element section with Text block).
 * Real markup: section > h3.gb-text + img (no .gb-inside-container). Also supports Container + .gb-headline.
 * Reference: left-aligned block, caps, thin gold rule to the left of the first line (text color from editor).
 */
.hw-gb-advisory-lead[class*="gb-element"],
section.hw-gb-advisory-lead,
.hw-gb-advisory-lead {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
}

/* GenerateBlocks Text as heading tag (h3.gb-text) — primary layout */
.hw-gb-advisory-lead h3[class*="gb-text"],
.hw-gb-advisory-lead h2[class*="gb-text"],
.hw-gb-advisory-lead p[class*="gb-text"],
.gb-element-84545281 h3[class*="gb-text"],
.gb-element-84545281 h2[class*="gb-text"],
.gb-element-84545281 p[class*="gb-text"],
.gb-container-84545281 h3[class*="gb-text"],
.gb-container-84545281 h2[class*="gb-text"],
.gb-container-84545281 p[class*="gb-text"] {
	position: relative;
	max-width: min(92vw, 720px);
	margin: 0 auto;
	padding-left: clamp(40px, 5.5vw, 64px);
	box-sizing: border-box;
	border-bottom: none !important;
	box-shadow: none !important;
	text-align: left;
	font-style: normal !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.28;
	font-size: clamp(1.125rem, 2.35vw + 0.55rem, 1.85rem);
	text-shadow: none;
	background-image: linear-gradient(#f2bf59, #f2bf59) !important;
	background-size: clamp(26px, 3.8vw, 40px) clamp(1.5px, 0.1em, 2.5px) !important;
	background-repeat: no-repeat !important;
	background-position: 0 calc(0.48em - 1px) !important;
}

/* Optional: Container + nested inside + Headline */
.hw-gb-advisory-lead > .gb-inside-container,
.gb-element-84545281 > .gb-inside-container,
.gb-container-84545281 > .gb-inside-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	max-width: min(92vw, 720px);
	margin-inline: auto;
	box-sizing: border-box;
	text-align: center;
}

.hw-gb-advisory-lead .gb-container .gb-inside-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: 100%;
}

.hw-gb-advisory-lead .gb-headline,
.gb-element-84545281 .gb-headline,
.gb-container-84545281 .gb-headline {
	position: relative;
	padding-left: clamp(40px, 5.5vw, 64px) !important;
	box-sizing: border-box;
	border-bottom: none !important;
	box-shadow: none !important;
	background-image: linear-gradient(#f2bf59, #f2bf59) !important;
	background-size: clamp(26px, 3.8vw, 40px) clamp(1.5px, 0.1em, 2.5px) !important;
	background-repeat: no-repeat !important;
	background-position: 0 calc(0.48em - 1px) !important;
}

.hw-gb-advisory-lead .gb-headline .gb-headline-text,
.hw-gb-advisory-lead .gb-headline a,
.gb-element-84545281 .gb-headline .gb-headline-text,
.gb-element-84545281 .gb-headline a,
.gb-container-84545281 .gb-headline .gb-headline-text,
.gb-container-84545281 .gb-headline a {
	font-style: normal !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-align: center !important;
	line-height: 1.28;
	font-size: clamp(1.125rem, 2.35vw + 0.55rem, 1.85rem);
	text-shadow: none;
}

.hw-gb-advisory-lead .gb-headline a,
.gb-element-84545281 .gb-headline a,
.gb-container-84545281 .gb-headline a {
	text-decoration: none !important;
}

.hw-gb-advisory-lead > figure,
.hw-gb-advisory-lead > img,
.hw-gb-advisory-lead > [class*="gb-media"] {
	max-width: min(96vw, 920px);
	height: auto;
	margin-top: clamp(0.75rem, 2vw, 1.5rem);
}

#generate-slideout-menu .gp-icon svg {
    height: 2em;
    width: 2em;
}

.slideout-navigation button.slideout-exit{
    text-align: right;
}

.center-max300{
    max-width: 275px;
    text-align: center;
    margin: auto;
}

.center-max300 a:hover img{
    fill: #af9d7d !important;
}

/* Override WooCommerce variation greying out for quote functionality */
.oa-tfp-option.disabled.unavailable,
.oa-tfp-option[data-attribute_name="pa_size"].disabled.unavailable {
    opacity: 1 !important;
    filter: none !important;
    cursor: pointer !important;
    pointer-events: auto !important;
}

.gb-element-3e3126d0 .oa-logo-subheading, .gb-element-3e3126d0 a.oa-logo-button{
    display: none !important;
}


.sticky-navigation-logo img {
    min-height: 45px;
}

.oa-logo-grid-item a:hover{
    color: var(--accent);
}



.gp-currency-switcher option{
    background-color: var(--contrast);
    color:#fff;
}

.gp-currency-switcher option:hover{
    background-color: var(--contrast);
    color:#fff;
}

a:active {
    color: #ffffff;
}

.oa-text-white .oa-button.button:not(.oa-button-outline):not(:hover) {
    color: #ffffff;
    background: #ffffff39;
    backdrop-filter: blur(5px);
}

.oa-slide-content.oa-align-center.oa-valign-bottom:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
    pointer-events: none;
    z-index: -1;
}


.home .header-wrap .site-header {
    background: rgba(255, 255, 255, 0.9);
    -webkit-backdrop-filter: blur(5px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.sticky-navigation-logo {
    padding: 7px;
}

.oa-links-element .wc-block-mini-cart__badge{
        font-size: 9px;
        background-color: transparent !important;
}

table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap>*{
    text-align: left;
}

.header-wrap:hover {
    background-color: #ffffffe6;
}


.header-wrap{
 transition: background-color 1s ease-in-out; ;
}

.main-navigation .main-nav ul ul li a:hover {
    font-weight: 700;
}

:root {
    --radius-size: 5px;
    --shadow: 0px 10px 20px 0px rgb(0 0 0 / 25%);
}

html,
body {
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    overflow-x: hidden;
}

input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=text],
input[type=url],
select,
textarea {
    color: var(--accent);
    background: #ffffff;
    border: 1px solid var(--accent);
    -webkit-border-radius: var(--radius-size);
    -moz-border-radius: var(--radius-size);
    border-radius: var(--radius-size);
}

body input[type="button"],
body input[type="reset"],
body input[type="submit"],
body a.button,
body button.button,
body .wp-block-button .wp-block-button__link,
body .wc-block-components-button:not(.is-link) .wc-block-components-button__text,
body.woocommerce a.button {
    padding: 15px 30px;
    border-width: inherit;
    border-style: inherit;
    -webkit-border-radius: var(--radius-size) !important;
    -moz-border-radius: var(--radius-size) !important;
    border-radius: var(--radius-size) !important;
}

::-webkit-input-placeholder {
    color: var(--accent);
    text-transform: inherit;
}
::-moz-placeholder {
    color: var(--accent);
    text-transform: inherit;
}
:-ms-input-placeholder {
    color: var(--accent);
    text-transform: inherit;
}
:-moz-placeholder {
    color: var(--accent);
    text-transform: inherit;
}

p:empty {
    display: none !important
}

p:last-child {
    margin-bottom: 0;
}

a, button, input {
    text-decoration: none;
    transition: none;
}

.customize-partial-edit-shortcut button,
.widget .customize-partial-edit-shortcut button {
    display: none;
}

table {
    border: 1px solid #000;
}

/*=========================================
---------- PRE DEFINED CLASSES ----------*/

.oo-white-text,
.oo-white-text * {
    color: #ffffff;
}

.oo-bold-text,
.oo-bold-text * {
    font-weight: 500;
}

.oo-align-center {
    text-align: center;
}

.oo-align-right {
    text-align: right;
}

.oo-box-shadow {
    -webkit-box-shadow: var(--shadow);
    -moz-box-shadow: var(--shadow);
    box-shadow: var(--shadow);
}

.oo-no-highlight {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.oo-transition {
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    -ms-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
}

/* Gold rule before first line — typography unchanged (set in editor) */
.hw-gold-rule {
    --hw-gold: #f2bf59;
    --hw-gold-rule-gap: clamp(40px, 5.5vw, 64px);
    --hw-gold-rule-width: clamp(26px, 3.8vw, 40px);
    --hw-gold-rule-height: clamp(2px, 0.14em, 3px);
    position: relative;
    box-sizing: border-box;
    padding-left: var(--hw-gold-rule-gap);
    background-image: linear-gradient(var(--hw-gold), var(--hw-gold));
    background-size: var(--hw-gold-rule-width) var(--hw-gold-rule-height);
    background-repeat: no-repeat;
    background-position: 0 calc(0.5em - 1px);
}

/* GenerateBlocks Headline: class on block wrapper */
.hw-gold-rule.gb-headline {
    padding-left: 0;
    background-image: none;
}

.hw-gold-rule.gb-headline .gb-headline-text {
    position: relative;
    box-sizing: border-box;
    padding-left: var(--hw-gold-rule-gap);
    background-image: linear-gradient(var(--hw-gold), var(--hw-gold));
    background-size: var(--hw-gold-rule-width) var(--hw-gold-rule-height);
    background-repeat: no-repeat;
    background-position: 0 calc(0.5em - 1px);
}

/* Chamfered corners — 15px cut on each corner (img or wrapper) */
.hw-cut-corners,
.hw-cut-corners img {
    --hw-corner-cut: 15px;
    display: block;
    clip-path: polygon(
        var(--hw-corner-cut) 0,
        calc(100% - var(--hw-corner-cut)) 0,
        100% var(--hw-corner-cut),
        100% calc(100% - var(--hw-corner-cut)),
        calc(100% - var(--hw-corner-cut)) 100%,
        var(--hw-corner-cut) 100%,
        0 calc(100% - var(--hw-corner-cut)),
        0 var(--hw-corner-cut)
    );
}

/* Center image horizontally (img or wrapper) */
.hw-img-center,
.hw-img-center img {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* Align GB Media to the right — does not override width from block settings */
img.hw-media-align-right,
.hw-media-align-right:is(img, video) {
	display: block;
	margin-left: auto !important;
	margin-right: 0 !important;
	align-self: flex-end;
}

/* Class on a wrapper element */
.hw-media-align-right:not(img):not(video) {
	display: flex;
	justify-content: flex-end;
	width: 100%;
}

.hw-media-align-right:not(img):not(video) img,
.hw-media-align-right:not(img):not(video) [class*="gb-media"] {
	margin-left: auto;
	margin-right: 0;
}

.wp-block-column:has(> img.hw-media-align-right) {
	align-items: flex-end;
}

/*=========================================
---------------- HEADER -----------------*/

/* TOP header: keep blur, but on an overlay */
.header-wrap .site-header {
    position: relative;                          /* anchor pseudo */
    background: rgba(255,255,255,0.4);
    border-bottom: 1px solid rgba(255,255,255,0.15);
    /* no backdrop-filter here */
    /* no will-change here */
    isolation: isolate;                          /* safer stacking */
}

.header-wrap .site-header::before {
    content: "";
    position: absolute;
    inset: 0;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    pointer-events: none;                        /* never blocks scroll/clicks */
    z-index: 0;
}

/* keep header content above the blur layer */
.header-wrap .site-header > * { position: relative; z-index: 1; }

/* STICKY/CLONE header: no heavy blur */
.header-wrap .site-header.is_stuck::before,
.header-wrap .sticky-navigation::before,
.header-wrap #sticky-navigation::before {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

.header-wrap .site-header.is_stuck,
.header-wrap .sticky-navigation,
.header-wrap #sticky-navigation {
    background: rgba(255,255,255,0.95) !important;
}







.main-navigation ul ul {
    width: 225px !important;
}

.main-navigation .main-nav ul ul li:first-child a {
    padding-top: 15px;
}

.main-navigation .main-nav ul ul li:last-child a {
    padding-bottom: 18px;
}

.widget_nav_menu ul ul {
    display: none;
    position: absolute;
    background: white;
    z-index: 99;
    padding: 0;
    list-style: none;
    min-width: 150px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
}

.widget_nav_menu ul li {
    position: relative;
}

.widget_nav_menu ul li:hover > ul {
    display: block;
}

.widget_nav_menu ul li ul li a {
    padding-left: 15px;
}

.wp-block-social-link:hover {
    transform: scale(1);
}

header .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg {
    fill: var(--contrast);
}

/*=========================================
------------------ BODY -----------------*/

body.single-post #main {
    max-width: 800px;
    margin: 0 auto;
}

body:not(.blog)  header.entry-header .entry-title,
body:not(.blog) header.entry-header .entry-meta {
    text-align: center;
}

body.blog header.entry-header .entry-title {
    font-size: 30px;
    text-align: left;
    margin-bottom: 0;
}

p.read-more-container a.button {
    padding: 8px 20px;
}

.page-hero .button.oa-button.oa-button-outline {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);   
}

.pattern-title-area strong,
.pattern-title-area b {
    font-weight: 500;
}

.wp-block-video video {
    overflow: hidden;
    -webkit-border-radius: var(--radius-size);
    -moz-border-radius: var(--radius-size);
    border-radius: var(--radius-size);
}


table .icon-check {
    width: 13px;
    height: 13px;
    fill: currentColor;
    vertical-align: middle;
}

table th,
table tr {
    text-align: center;
    vertical-align: middle;
}

.google-maps {
    filter: grayscale(100%);
    transition: filter 0.3s ease;
}

.google-maps:hover {
    filter: grayscale(0%);
}

.read-more-container a.read-more.button {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 5px;
    background: transparent;
    color: var(--contrast);
    border-bottom: 1px solid;
    border-radius: 0 !important;
}

.read-more-container a.read-more.button::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 10px;
    margin-left: 20px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10'><path d='M1 5h12M9 2l4 3-4 3' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center;
    background-size: contain;
    vertical-align: middle;
}

/* 1) Make the image box a fixed square and clip overflow */
li.product .wc-product-image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1;      /* Woo thumbs are square; change if needed */
    line-height: 0;           /* kills baseline gap */
}

/* 2) Ensure the inner wrapper and img fill the box cleanly */
li.product .wc-product-image .inside-wc-product-image { 
    height: 100%;
}

li.product .wc-product-image img {
    display: block;           /* removes inline whitespace */
    width: 100%;
    height: 100%;
    object-fit: cover;        /* cover the square neatly */
    transform-origin: center center;
    transition: transform 3.7s ease;
}

/* 3) Zoom stays inside the clipped box */
li.product:hover .wc-product-image img { 
    transform: scale(1.38);
}

.oa-tfp-product-details-buttons{
    justify-content: space-evenly;
}

/*=========================================
-------------- GRAVITY FORMS ------------*/

.gform-theme--foundation legend,
.gform-theme--foundation label.gfield_label {
    font-weight: 600 !important;
}

.gform-theme--framework .gform-field-label > .gfield_required:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    color: #ffcc70 !important;
}

#gform_wrapper_3[data-form-index="0"].gform-theme {
    --gf-color-secondary-darker: #ffcc70 !important;
}

.gform_wrapper .gfield_radio input[type="radio"]:focus,
.gform_wrapper .gfield_radio input[type="radio"]:focus-visible,
.gform_wrapper .gfield_checkbox input[type="checkbox"]:focus,
.gform_wrapper .gfield_checkbox input[type="checkbox"]:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Disable all focus styles for Gravity Forms fields */
.gform_wrapper input:focus,
.gform_wrapper input:focus-visible,
.gform_wrapper select:focus,
.gform_wrapper select:focus-visible,
.gform_wrapper textarea:focus,
.gform_wrapper textarea:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.gform_wrapper .gpnf-nested-entries img {
    display: none !important;
}

.gform_wrapper .gpnf-nested-entries-container {
    overflow: initial !important;
}

.gform-theme--foundation .gform_footer,
.gform-theme--foundation .gform_page_footer {
    margin-block-start: 40px !important;
}

.gform-theme--foundation .gform_fields {
    row-gap: 20px !important;
}

/*=========================================
-------------- WOOCOMMERCE --------------*/

.woocommerce .product_meta {
    display: none !important;
}

.woocommerce div.product div.images .flex-control-thumbs {
    display: none !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
    background-color: #f7f6f5;
    -webkit-border-radius: var(--radius-size);
    -moz-border-radius: var(--radius-size);
    border-radius: var(--radius-size);
    overflow: hidden;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg {
    background-color: #f7f6f5;
}

.woocommerce .add-to-cart-panel{
    padding-top: 10px;
    padding-bottom: 10px;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    -webkit-border-radius: var(--radius-size);
    -moz-border-radius: var(--radius-size);
    border-radius: var(--radius-size);
}

.woocommerce ul.products li.product a img {
    background-color: #f0eeed;
}

.woocommerce ul.products li.product.woocommerce-text-align-left .button {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 5px;
    background: transparent;
    color: var(--contrast);
    border-bottom: 1px solid;
    border-radius: 0 !important;
}

.woocommerce ul.products li.product.woocommerce-text-align-left .button::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 10px;
    margin-left: 20px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10'><path d='M1 5h12M9 2l4 3-4 3' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center;
    background-size: contain;
    vertical-align: middle;
}

.woocommerce table.shop_attributes td {
    padding: 0 10px;
    border-right: 0;
    border-bottom: 1px solid rgba(0, 0, 0, .1);

}

.woocommerce table.shop_attributes th {
    width: 200px;
    text-align: left;
}

.woocommerce table.shop_attributes {
    border: 1px solid rgba(0, 0, 0, .1);
}

.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td {
    border-bottom: 0
}

.woocommerce .woocommerce-error .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-message .button,
.woocommerce-page .woocommerce-error .button,
.woocommerce-page .woocommerce-info .button,
.woocommerce-page .woocommerce-message .button {
    padding: 5px 20px !important;
    border: 0 !important;
    background-color: #ffffff !important;
    color: #000000 !important;
}

.do-quantity-buttons form .quantity:not(.buttons-added):not(.hidden):after,
.do-quantity-buttons form .quantity:not(.buttons-added):not(.hidden):before,
.woocommerce form .quantity.buttons-added .minus,
.woocommerce form .quantity.buttons-added .plus,
.woocommerce form .quantity.buttons-added .qty {
    width: 30px !important;
    border: none !important;
    min-height: 40px !important;
}

.woocommerce div.product div.summary,
.woocommerce div.product form.cart {
    margin-bottom: 0 !important;
}

/*=========================================
---------------- FOOTER -----------------*/

/* First menu item in footer widget */
.footer-widgets .widget li:first-child a

 {
    color: #f2bf59;
}

/* Form wrapper */
#gform_1 {
    position: relative;
    max-width: 320px;
}

/* Input */
#gform_1 input[type="email"] {
    height: 48px;
    padding-right: 55px !important;
    border-radius: 4px;
}

/* Place submit area inside field */
#gform_1 .gform_footer {
    position: absolute;
    top: 0;
    right: 0;
    width: 50px;
    height: 48px;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hide actual button but keep it clickable */
#gform_submit_button_1 {
    position: absolute;
    inset: 0;
    width: 50px;
    height: 48px;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

/* Visible arrow */
#gform_1 .gform_footer::before {
    content: "›";
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-54%);
    font-size: 44px;
    line-height: 1;
    font-weight: 700;
    color: #0b5f84;
    z-index: 1;
    pointer-events: none;
}

.footer-socials {
    display: flex;
    gap: 12px;
}

.footer-socials img {
    width: 52px;
    height: 52px;
    transition: 0.3s ease;
}

.footer-socials img:hover {
    transform: translateY(-2px);
}

.footer-bar .has-text-align-right {
    opacity: 0.2;
}

.inside-site-info {
    align-items: flex-start;
}

.site-footer .site-info li {
    display: inline-block;
    text-align: left;
}

.site-footer .site-info a {
    color: #fff;
    padding-right: 20px;
}

#menu-terms-footer {
    margin: 0;
}

#footer-widgets p {
    font-size: 13px;
}

.inside-footer-widgets > div {
    flex: auto;
}

.footer-widget-2 a,
.footer-widget-3 a,
.footer-widget-4 a,
.footer-widget-5 a {
    text-transform: uppercase;
    font-size: 13px;
}


/*=========================================
----------- RESPONSIVE SIZES ------------*/


@media screen and (min-width: 1800px) {
    /* DESKTOP ONLY */

     .oa-tfp-product-banner-img{
        min-height: 650px;
     }

}     

@media screen and (min-width: 769px) {
    /* Footer: 1 wide, 2–4 equal menus, 5 narrower (35% + 18%×3 + 11% = 100%) */
    .inside-footer-widgets > div {
        flex: 0 0 auto;
    }

    .footer-widget-1 {
        width: 35%;
        flex: 0 0 35%;
    }

    .footer-widget-1 > * {
        padding-right: 10% !important;
    }

    .footer-widget-2,
    .footer-widget-3,
    .footer-widget-4 {
        width: 18%;
        flex: 0 0 18%;
    }

    .footer-widget-5 {
        width: 11%;
        flex: 0 0 11%;
    }
}

@media (min-width: 481px) and (max-width: 1024px) {
    /* LAPTOP & TABLET */
}

@media screen and (max-width: 768px) {
    /* TABLET & MOBILE */
    .header-widget {
        display: none;
    }

    /* Hero banners: fit viewport below header (offset set in inc/viewport-hero.php) */
    .gb-element-c1733961,
    .hw-gb-banner-text[class*="gb-element"],
    section.hw-gb-banner-text {
        min-height: max(280px, calc(100svh - var(--hw-header-offset, 70px)));
    }

    .footer-widget-1,
    .footer-widget-2,
    .footer-widget-3,
    .footer-widget-4,
    .footer-widget-5 {
        width: 100% !important;
    }

    .inside-site-info {
        align-items: center;
    }

    .copyright-bar {
        width: 100%;
        float: none !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .footer-bar-align-right .copyright-bar,
    .footer-bar-align-left .copyright-bar {
        order: unset;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media screen and (max-width: 480px) {
    /* MOBILE ONLY */

    footer,
    footer .has-text-align-right {
        text-align: left !important;
    }

    .copyright-bar {
        text-align: center !important;
    }
}
