/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme with BambooFix branding
 * Author: BambooFix Team
 * Template: blocksy
 * Text Domain: blocksy
 * Version: 1.0.1
 */

/* ====== FORCE CUSTOM FONTS - OVERRIDE BLOCKSY FREE RESTRICTIONS ====== */
/* This section ensures custom fonts load even in Blocksy free version */

/* Universal font override - covers all elements */
*, 
*::before, 
*::after,
html,
body,
body *,
.ct-container,
.ct-container *,
[data-column],
[data-column] *,
.wp-block,
.wp-block *,
.entry-content,
.entry-content *,
.single-content,
.single-content *,
.page-content,
.page-content *,
.widget,
.widget *,
.sidebar,
.sidebar *,
.header-wrapper,
.header-wrapper *,
.footer-wrapper,
.footer-wrapper *,
.site-main,
.site-main *,
.content-area,
.content-area *,
.primary,
.primary *,
.secondary,
.secondary *,
.ct-header,
.ct-header *,
.ct-footer,
.ct-footer *,
article,
article *,
section,
section *,
.blocksy-woo,
.blocksy-woo *,
.woocommerce,
.woocommerce *,
.wc-block,
.wc-block *,
.wp-block-group,
.wp-block-group *,
.wp-block-columns,
.wp-block-columns *,
.wp-block-column,
.wp-block-column *,
.has-text-color,
.has-background,
.wp-block-heading,
.wp-block-paragraph,
.wp-block-list,
.wp-block-quote,
.entry-title,
.page-title,
.post-title,
.widget-title,
.comment-content,
.comment-content *,
.comment-form,
.comment-form *,
.search-form,
.search-form *,
.navigation,
.navigation *,
.menu,
.menu *,
.menu-item,
.menu-item *,
.sub-menu,
.sub-menu *,
.dropdown-menu,
.dropdown-menu *,
.ct-menu,
.ct-menu *,
.ct-navigation,
.ct-navigation *,
.blocksy-menu,
.blocksy-menu *,
p, span, div, a, li, ul, ol, dl, dt, dd, blockquote, cite, em, strong, b, i, small, mark, del, ins, sub, sup,
input, textarea, select, option, label, fieldset, legend, button,
table, th, td, caption, thead, tbody, tfoot, tr,
figure, figcaption, img, video, audio, canvas, svg,
.ct-text-block,
.ct-text-block *,
.elementor,
.elementor *,
.elementor-widget,
.elementor-widget * {
    font-family: var(--font-body, 'Montserrat', Arial, sans-serif) !important;
}

/* Force all headings to use display font */
h1, h1 *,
h2, h2 *,
h3, h3 *,
h4, h4 *,
h5, h5 *,
h6, h6 *,
.h1, .h1 *,
.h2, .h2 *,
.h3, .h3 *,
.h4, .h4 *,
.h5, .h5 *,
.h6, .h6 *,
.entry-title,
.entry-title *,
.page-title,
.page-title *,
.post-title,
.post-title *,
.widget-title,
.widget-title *,
.site-title,
.site-title *,
.wp-block-heading,
.wp-block-heading *,
.wp-block-post-title,
.wp-block-post-title *,
.wp-block-site-title,
.wp-block-site-title *,
.has-heading-font-family,
.has-heading-font-family *,
.ct-heading,
.ct-heading *,
.blocksy-heading,
.blocksy-heading *,
.elementor-heading-title,
.elementor-heading-title *,
.entry-card-title,
.entry-card-title *,
.ct-title,
.ct-title *,
.wp-block-query-title,
.wp-block-query-title * {
    font-family: var(--font-display, 'ES Klarheit Grotesk Mono', 'Courier New', monospace) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.04em !important;
}

/* Force all buttons to use primary font */
.wp-block-button__link,
.wp-block-button__link *,
.stk-block-button a,
.stk-block-button a *,
.ct-button,
.ct-button *,
.button,
.button *,
.btn,
.btn *,
input[type="submit"],
input[type="button"],
input[type="reset"],
button,
button *,
.wp-element-button,
.wp-element-button *,
.wc-block-grid__product-add-to-cart,
.add_to_cart_button,
.single_add_to_cart_button,
.checkout-button,
.cart-button,
.elementor-button,
.elementor-button *,
.ct-ghost-button,
.ct-ghost-button *,
.read-more-button,
.read-more-button * {
    font-family: var(--font-primary, 'ES Klarheit Grotesk Mono', 'Courier New', monospace) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-weight: 600 !important;
}

/* Override Blocksy CSS custom properties forcefully */
:root {
    --theme-font-family: var(--font-body, 'Montserrat', Arial, sans-serif) !important;
    --theme-heading-font-family: var(--font-display, 'ES Klarheit Grotesk Mono', monospace) !important;
    --theme-button-font-family: var(--font-primary, 'ES Klarheit Grotesk Mono', monospace) !important;
    --ct-body-font-family: var(--font-body, 'Montserrat', Arial, sans-serif) !important;
    --ct-headings-font-family: var(--font-display, 'ES Klarheit Grotesk Mono', monospace) !important;
    --ct-buttons-font-family: var(--font-primary, 'ES Klarheit Grotesk Mono', monospace) !important;
    --blocksy-font-family: var(--font-body, 'Montserrat', Arial, sans-serif) !important;
    --blocksy-heading-font-family: var(--font-display, 'ES Klarheit Grotesk Mono', monospace) !important;
    
    /* Override any Google Fonts or system fonts Blocksy might set */
    --google-font-primary: var(--font-body, 'Montserrat', Arial, sans-serif) !important;
    --google-font-headings: var(--font-display, 'ES Klarheit Grotesk Mono', monospace) !important;
    --system-font: var(--font-body, 'Montserrat', Arial, sans-serif) !important;
}

/* Override any Blocksy font classes */
[class*="ct-font-"],
[class*="blocksy-font-"],
[class*="has-font-"],
.ct-font-[class*="font-"],
.blocksy-font-[class*="font-"],
.has-font-[class*="font-"] {
    font-family: inherit !important;
}

/* Specific overrides for common Blocksy elements */
.ct-logo,
.ct-logo *,
.site-branding,
.site-branding *,
.custom-logo-link,
.custom-logo-link * {
    font-family: var(--font-display, 'ES Klarheit Grotesk Mono', monospace) !important;
}

.ct-menu-link,
.ct-menu-link *,
.menu-link,
.menu-link *,
.nav-link,
.nav-link * {
    font-family: var(--font-primary, 'ES Klarheit Grotesk Mono', monospace) !important;
}

/* ====== BRAND COLORS & VARIABLES ====== */
:root {
    /* Primary Brand Colors */
    --color-reseda: #617157;
    --color-white-smoke: #F2F2F2;
    
    /* Secondary Brand Colors */
    --color-dark-green: #192A0A;
    --color-khaki: #C7AF95;
    --color-ash-grey: #A1AD99;
    --color-davys-grey: #4F4F57;
    
    /* Brand Typography */
    --font-primary: var(--font-grotesk-mono);
    --font-secondary: 'Montserrat', sans-serif;
    --font-display: var(--font-grotesk-mono);
    --font-body: var(--font-secondary);
    
    /* Gradients and Effects */
    --gradient-natural: linear-gradient(135deg, var(--color-reseda) 0%, var(--color-dark-green) 100%);
    --gradient-creative: linear-gradient(45deg, var(--color-reseda) 0%, var(--color-khaki) 50%, var(--color-dark-green) 100%);
    --gradient-button: linear-gradient(135deg, var(--color-reseda) 0%, var(--color-dark-green) 100%);
    --gradient-button-hover: linear-gradient(135deg, var(--color-dark-green) 0%, var(--color-reseda) 100%);
    --box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    --box-shadow-hover: 0 15px 40px rgba(0, 0, 0, 0.15);
    --transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ====== BRAND TYPOGRAPHY ====== */
body, * {
    font-family: var(--font-body) !important;
    color: var(--color-davys-grey);
    line-height: 1.6;
}

/* Brand-compliant headings: Klarheit Grotesk Mono (Semibold) for headlines (UPPERCASE only, tracking -40) */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.04em !important; /* matches -40 tracking from brand book */
    line-height: 1.2 !important;
    margin-bottom: 1rem !important;
    color: var(--color-dark-green) !important;
}

h1 { font-size: 3rem !important; }
h2 { font-size: 2.5rem !important; }
h3 { font-size: 2rem !important; }
h4 { font-size: 1.75rem !important; }
h5 { font-size: 1.5rem !important; }
h6 { font-size: 1.25rem !important; }

/* Body text: Montserrat (Regular) for body text (sentence-case only, tracking -40) */
p {
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
    letter-spacing: -0.04em !important;
    text-transform: none !important;
    color: var(--color-davys-grey) !important;
}

/* Links */
a {
    color: var(--color-reseda);
    text-decoration: none;
    transition: var(--transition);
}

a:hover {
    color: var(--color-khaki);
}

/* ====== STACKABLE BLOCKS STYLING ====== */
body :is(.stk-22bc0c3, .stk-1ff9060, .stk-a80ef35, .stk-236449e, .stk-8d7463e) .stk--svg-wrapper .stk--inner-svg {
    background-color: var(--color-reseda) !important;
}

body .stk-cf247fd:hover:before {
    opacity: 0.3 !important;
}

body .stk-cf247fd:before {
    background-color: #000 !important;
    opacity: 0.3 !important;
}

/* ====== CUSTOM COMPONENTS ====== */
.ct-sticky-container {
    background: rgba(51, 51, 51, 0.26) !important;
}

.bamboo-banner {
    height: calc(100vh - 32px);
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* ====== BUTTONS ====== */
.wp-block-button__link,
.stk-block-button a {
    background: var(--gradient-button) !important;
    color: var(--color-white-smoke) !important;
    padding: 1rem 2rem !important;
    border-radius: 50px !important;
    font-family: var(--font-primary) !important;
    font-size: 0.9rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    transition: var(--transition) !important;
    box-shadow: var(--box-shadow) !important;
    font-weight: 600 !important;
}

.wp-block-button__link:hover,
.stk-block-button a:hover {
    background: var(--gradient-button-hover) !important;
    transform: translateY(-3px) !important;
    box-shadow: var(--box-shadow-hover) !important;
}

/* ====== RESPONSIVE DESIGN ====== */
@media screen and (max-width: 600px) {
    .banner-btn-group .stk-block-button,
    .banner-btn-group .wp-block-button {
        min-width: 100%;
    }
    
    h1 { font-size: 2.5rem !important; }
    h2 { font-size: 2rem !important; }
    h3 { font-size: 1.75rem !important; }
    h4 { font-size: 1.5rem !important; }
    h5 { font-size: 1.25rem !important; }
    h6 { font-size: 1.1rem !important; }
}

/* ====== BAMBOOFIX GRAVITY FORMS CUSTOMIZATION ====== */

/* Form Container */
.gform_wrapper {
    background: var(--color-white-smoke) !important;
    border-radius: 18px !important;
    padding: 40px 32px !important;
    box-shadow: 0 2px 18px rgba(97, 113, 87, 0.11) !important;
    margin: 48px auto !important;
    font-family: var(--font-body) !important;
    color: var(--color-davys-grey) !important;
}

.gform_wrapper form {
    font-family: var(--font-body) !important;
    color: var(--color-davys-grey) !important;
}

/* Form Headings */
.gform_heading h2,
.gform_title {
    font-family: var(--font-display) !important;
    text-transform: uppercase !important;
    letter-spacing: -0.04em !important;
    color: var(--color-reseda) !important;
    font-weight: 600 !important;
    font-size: 2rem !important;
    margin-bottom: 18px !important;
}

.gform_description {
    font-size: 1.05rem !important;
    color: var(--color-ash-grey) !important;
    margin-bottom: 30px !important;
    font-style: italic !important;
    font-family: var(--font-body) !important;
}

/* Field Labels */
.gfield_label {
    font-family: var(--font-body) !important;
    color: var(--color-davys-grey) !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 6px !important;
}

/* Inputs, Textareas, Dropdowns */
.ginput_container input,
.ginput_container select,
.ginput_container textarea {
    border: 1.5px solid var(--color-ash-grey) !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    background: #fff !important;
    color: var(--color-dark-green) !important;
    font-size: 1rem !important;
    font-family: var(--font-body) !important;
    transition: var(--transition) !important;
    margin-bottom: 8px !important;
}

.ginput_container input:focus,
.ginput_container select:focus,
.ginput_container textarea:focus {
    border-color: var(--color-reseda) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Placeholder Text */
.ginput_container input::placeholder,
.ginput_container textarea::placeholder {
    color: var(--color-khaki) !important;
    font-style: italic !important;
}

/* Radio & Checkbox Styles */
.gfield_radio li,
.gfield_checkbox li {
    margin-bottom: 8px !important;
}

.gfield_radio input[type="radio"]:checked + label,
.gfield_checkbox input[type="checkbox"]:checked + label {
    color: var(--color-reseda) !important;
    font-weight: 600 !important;
}

.gfield_radio input[type="radio"],
.gfield_checkbox input[type="checkbox"] {
    accent-color: var(--color-reseda) !important;
}

/* Submit Button - All Variants */
.gform_footer input[type="submit"],
.gform_button,
.gform_wrapper input[type="submit"].gform_button,
.gform_wrapper input[type="submit"].button,
.gform_wrapper input[type="submit"].gform_button.button,
.gform_wrapper .gform_button.button,
.gform_wrapper .gform_footer .button,
.gform_wrapper .gform_footer input[type="submit"].button {
    background: var(--gradient-button) !important;
    color: var(--color-white-smoke) !important;
    font-family: var(--font-primary) !important;
    font-size: 1.05rem !important;
    padding: 12px 36px !important;
    border-radius: 6px !important;
    border: none !important;
    font-weight: 600 !important;
    letter-spacing: -0.04em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    box-shadow: var(--box-shadow) !important;
    transition: var(--transition) !important;
    display: inline-block !important;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
}

.gform_footer input[type="submit"]:hover,
.gform_button:hover,
.gform_wrapper input[type="submit"].gform_button:hover,
.gform_wrapper input[type="submit"].button:hover,
.gform_wrapper input[type="submit"].gform_button.button:hover,
.gform_wrapper .gform_button.button:hover,
.gform_wrapper .gform_footer .button:hover,
.gform_wrapper .gform_footer input[type="submit"].button:hover {
    background: var(--gradient-button-hover) !important;
    box-shadow: var(--box-shadow-hover) !important;
    color: var(--color-white-smoke) !important;
    transform: translateY(-3px) !important;
}

/* Error Messages */
.gfield_error,
.gform_validation_errors,
.gform_validation_message {
    border-color: var(--color-khaki) !important;
    background: #FFF7F0 !important;
    color: #C7742E !important;
    border-radius: 7px !important;
    padding: 10px 16px !important;
    font-size: 0.98rem !important;
    margin-bottom: 18px !important;
}

/* Progress Bar */
.gform_wrapper .gf_progressbar {
    background: var(--color-ash-grey) !important;
    border-radius: 6px !important;
}

.gform_wrapper .gf_progressbar_percentage {
    background: var(--color-reseda) !important;
    color: var(--color-white-smoke) !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
}

/* Field Instructions */
.gfield_description {
    color: var(--color-davys-grey) !important;
    font-size: 0.93rem !important;
    margin-top: 2px !important;
    font-style: italic !important;
    font-family: var(--font-body) !important;
}

/* Hide Gravity Forms Credit */
.gform_wrapper .gform_footer .gform_credit {
    display: none !important;
}

/* Button Animation */
.gform_button {
    transition: var(--transition) !important;
}

.gform_button:active {
    transform: scale(0.97) !important;
}

/* Responsive Form Adjustments */
@media (max-width: 700px) {
    .gform_wrapper {
        padding: 22px 18px !important;
    }
    
    .gform_heading h2,
    .gform_title {
        font-size: 1.4rem !important;
    }
}

/* ====== CODE BLOCKS ====== */
code {
    font-family: var(--font-grotesk-mono) !important;
}

/* ====== ADDITIONAL BRAND COMPLIANCE ====== */
/* Ensure all text maintains brand compliance */
.wp-block-quote p,
.wp-block-pullquote p {
    font-family: var(--font-body) !important;
    letter-spacing: -0.04em !important;
}

/* Navigation styling */
.main-navigation a {
    font-family: var(--font-primary) !important;
    font-size: 0.9rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--color-davys-grey) !important;
}

.main-navigation a:hover {
    color: var(--color-reseda) !important;
}

/* Site title styling */
.site-title {
    font-family: var(--font-primary) !important;
    font-size: 1.5rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}

/* Footer styling */
.site-footer {
    background-color: var(--color-dark-green) !important;
    color: var(--color-white-smoke) !important;
    padding: 4rem 0 !important;
}

.footer-widgets h2 {
    color: var(--color-white-smoke) !important;
}

.footer-widgets a {
    color: var(--color-ash-grey) !important;
}

.footer-widgets a:hover {
    color: var(--color-khaki) !important;
}

/* Founders Message */
/* Main container for the founder section */
/* Main container for the founder section */
.bf-founder-section-wrapper {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  padding: 1rem; /* Provides some space on small screens */
}

/* The main flex container */
.bf-founder-section {
  display: flex;
  align-items: center;
  text-align: center; /* Center the content */
  max-width: 1280px; /* Equivalent to max-w-6xl */
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  border-radius: 1rem;
  background-color: var(--color-reseda, #617157);
  box-shadow: var(--box-shadow, 0 10px 30px rgba(0, 0, 0, 0.1));
}

/* Container for the text content */
.bf-founder-text-container {
  position: relative;
  width: 100%; /* Full width on all screen sizes */
  color: #f2f2f2 !important; /* Applied important color as requested */
  padding: 2rem; 
  box-sizing: border-box;
}

/* Giant quote marks styling */
.bf-founder-text-container::before,
.bf-founder-text-container::after {
  font-family: 'Times New Roman', serif;
  font-weight: bold;
  font-size: 8rem; 
  color: rgba(255, 255, 255, 0.1);
  position: absolute;
  line-height: 1;
  z-index: 1;
}
.bf-founder-text-container::before { content: '“'; top: 1rem; left: 0.5rem; }
.bf-founder-text-container::after { content: '”'; bottom: 0; right: 1.5rem; }

.bf-founder-text-content {
  position: relative;
  z-index: 2;
  max-width: 800px; /* Constrain text width for readability */
  margin-left: auto;
  margin-right: auto;
}

/* Heading style */
.bf-founder-heading {
  font-family: var(--font-display, 'Oswald', sans-serif);
  font-size: 2.25rem; 
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.bf-founder-body-text p + p {
  margin-top: 1rem; 
}

.bf-founder-body-text {
  margin-top: 2rem;
  font-size: 1.125rem;
}

/* Philosophy quote block */
.bf-founder-philosophy {
  font-style: italic;
  border-left: 3px solid var(--color-khaki, #C7AF95);
  border-right: 3px solid var(--color-khaki, #C7AF95);
  padding: 1rem 1.5rem;
  margin: 2rem auto;
  font-size: 1.5rem;
  display: inline-block; /* Fit content */
}
.bf-founder-philosophy strong {
  font-weight: 700;
}

/* Signature styling */
.bf-founder-signature {
  margin-top: 2rem;
  line-height: 1.5;
  font-size: 1.25rem;
}
.bf-founder-signature span {
  font-size: 1rem;
}

/* Responsive styles for larger screens */
@media (min-width: 1024px) {
  .bf-founder-text-container {
      padding: 4rem;
  }
  .bf-founder-heading {
       font-size: 3rem; 
  }
}

div#text-7 {
  display: none;
  margin: 0;
}

div#text-8 {
  margin-top: 0;
}