.barn-store-homepage {
    --bs-red: #bd2e32;
    --bs-red-dark: #962327;
    --bs-green: #344c40;
    --bs-green-dark: #25372f;
    --bs-cream: #f5f0e6;
    --bs-cream-deep: #e7ddca;
    --bs-charcoal: #242826;
    --bs-muted: #66706b;
    --bs-white: #ffffff;
    --bs-border: rgba(36, 40, 38, 0.13);
    --bs-shadow: 0 18px 50px rgba(28, 34, 31, 0.11);
    color: var(--bs-charcoal);
    font-size: 17px;
    line-height: 1.65;
    overflow: clip;
}

.barn-store-homepage *,
.barn-store-homepage *::before,
.barn-store-homepage *::after { box-sizing: border-box; }

.barn-store-homepage h1,
.barn-store-homepage h2,
.barn-store-homepage h3,
.barn-store-homepage p { margin-top: 0; }

.barn-store-homepage h1,
.barn-store-homepage h2,
.barn-store-homepage h3 {
    color: var(--bs-charcoal);
    font-weight: 750;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.barn-store-homepage h1 { font-size: clamp(2.7rem, 6vw, 5.4rem); max-width: 900px; }
.barn-store-homepage h2 { font-size: clamp(2rem, 4vw, 3.5rem); margin-bottom: 22px; }
.barn-store-homepage h3 { font-size: 1.25rem; margin-bottom: 12px; }
.barn-store-homepage p { margin-bottom: 20px; }
.barn-store-homepage a { text-underline-offset: 3px; }

.bs-container { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
.bs-section { padding: 88px 0; }
.bs-section-cream { background: var(--bs-cream); }
.bs-two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 72px); }
.bs-align-centre { align-items: center; }
.bs-section-heading { max-width: 790px; margin: 0 auto 48px; text-align: center; }
.bs-kicker,
.bs-eyebrow { color: var(--bs-red); font-size: .79rem; font-weight: 800; letter-spacing: .15em; margin-bottom: 14px; text-transform: uppercase; }
.bs-disclaimer { color: var(--bs-muted); font-size: .9rem; margin: 26px auto 0; max-width: 760px; text-align: center; }

.bs-btn {
    align-items: center;
    border: 2px solid transparent;
    border-radius: 7px;
    display: inline-flex;
    font-size: .93rem;
    font-weight: 800;
    justify-content: center;
    line-height: 1.15;
    min-height: 50px;
    padding: 14px 22px;
    text-decoration: none !important;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.bs-btn:hover { transform: translateY(-2px); }
.bs-btn-primary { background: var(--bs-red); color: var(--bs-white) !important; }
.bs-btn-primary:hover { background: var(--bs-red-dark); }
.bs-btn-secondary { background: var(--bs-green); color: var(--bs-white) !important; }
.bs-btn-secondary:hover { background: var(--bs-green-dark); }
.bs-btn-light { background: var(--bs-white); color: var(--bs-red) !important; }
.bs-btn-outline-light { border-color: rgba(255,255,255,.9); color: var(--bs-white) !important; }
.bs-btn-outline-light:hover { background: var(--bs-white); color: var(--bs-green-dark) !important; }
.bs-btn-text { color: var(--bs-red) !important; min-height: auto; padding: 5px 0; }
.bs-button-row { display: flex; flex-wrap: wrap; gap: 13px; }
.bs-button-row-centre { justify-content: center; }
.bs-centred-action { margin-top: 38px; text-align: center; }

.bs-hero {
    align-items: center;
    background-color: var(--bs-green-dark);
    background-position: center;
    background-size: cover;
    color: var(--bs-white);
    display: flex;
    min-height: 650px;
    position: relative;
}
.bs-hero-overlay { background: linear-gradient(90deg, rgba(20,31,26,.92) 0%, rgba(20,31,26,.68) 57%, rgba(20,31,26,.15) 100%); inset: 0; position: absolute; }
.bs-hero-inner { padding: 90px 0; position: relative; z-index: 1; }
.bs-hero h1 { color: var(--bs-white); margin-bottom: 24px; }
.bs-hero .bs-eyebrow { color: #f2d7b5; }
.bs-hero-copy { font-size: clamp(1.15rem, 2vw, 1.45rem); max-width: 720px; }
.bs-hero-copy-small { font-size: 1rem; max-width: 650px; opacity: .92; }
.bs-hero-proof { font-size: .9rem; margin: 25px 0 0; opacity: .84; }
.bs-hero-proof span { margin: 0 7px; }

.bs-tools { background: var(--bs-cream); }
.bs-tools-grid { align-items: stretch; }
.bs-panel { background: var(--bs-white); border: 1px solid var(--bs-border); border-radius: 15px; box-shadow: var(--bs-shadow); padding: clamp(26px, 4vw, 48px); }
.bs-connected-content { margin: 24px 0; }
.bs-connection-note { background: #fff5d6; border-left: 4px solid #d29a00; font-size: .86rem; margin: 0 0 18px; padding: 12px 14px; }
.bs-fallback-form label { display: block; font-weight: 800; margin-bottom: 8px; }
.bs-inline-form { display: flex; gap: 10px; }
.bs-inline-form input { border: 1px solid var(--bs-border); border-radius: 6px; flex: 1; font-size: 1rem; min-width: 0; padding: 14px; }
.bs-calculator-placeholder { background: var(--bs-cream); border: 1px dashed #b9ad98; border-radius: 10px; padding: 24px; }
.bs-calculator-placeholder p { margin-bottom: 0; }

.bs-trust-strip { background: var(--bs-green-dark); color: rgba(255,255,255,.86); padding: 32px 0 22px; }
.bs-trust-grid { display: grid; gap: 24px; grid-template-columns: repeat(4, 1fr); }
.bs-trust-grid > div { border-right: 1px solid rgba(255,255,255,.16); padding-right: 22px; }
.bs-trust-grid > div:last-child { border-right: 0; }
.bs-trust-grid h3 { color: var(--bs-white); font-size: 1.05rem; margin-bottom: 5px; }
.bs-trust-grid p { font-size: .86rem; margin-bottom: 0; }
.bs-icon { color: #efc89a; display: block; font-size: 1.6rem; line-height: 1; margin-bottom: 10px; }
.bs-strip-note { font-size: .72rem; margin: 22px auto 0; max-width: 900px; opacity: .63; padding: 0 24px; text-align: center; }

.bs-richtext { max-width: 680px; }
.bs-image-card,
.bs-security-image { background-position: center; background-size: cover; }
.bs-image-card { border-radius: 15px; box-shadow: var(--bs-shadow); min-height: 520px; }
.bs-image-placeholder { align-items: center; background-color: var(--bs-cream-deep); background-image: linear-gradient(135deg, rgba(52,76,64,.10), rgba(189,46,50,.09)); display: flex; justify-content: center; }
.bs-image-placeholder span { color: var(--bs-muted); font-size: .85rem; padding: 30px; text-align: center; }

.bs-card-grid { display: grid; gap: 22px; }
.bs-card-grid.bs-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bs-card-grid.bs-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bs-card { background: var(--bs-white); border: 1px solid var(--bs-border); border-radius: 12px; min-height: 300px; padding: 30px; }
.bs-card-number { color: var(--bs-red); display: block; font-size: .76rem; font-weight: 800; letter-spacing: .14em; margin-bottom: 35px; }
.bs-card p { color: var(--bs-muted); font-size: .94rem; }

.bs-benefit-grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); background: var(--bs-border); border: 1px solid var(--bs-border); border-radius: 12px; overflow: hidden; }
.bs-benefit-grid article { background: var(--bs-white); padding: 34px; }
.bs-benefit-grid p { color: var(--bs-muted); font-size: .94rem; margin-bottom: 0; }

.bs-size-card { background: var(--bs-white); border-radius: 13px; box-shadow: 0 10px 28px rgba(28,34,31,.07); padding: 34px; position: relative; }
.bs-size-card > span { color: var(--bs-green); display: inline-block; font-size: 3.4rem; font-weight: 850; line-height: 1; }
.bs-size-card > small { color: var(--bs-red); font-size: .68rem; font-weight: 850; letter-spacing: .14em; margin-left: 5px; }
.bs-size-card h3 { margin-top: 25px; }
.bs-size-card p { color: var(--bs-muted); }
.bs-size-card a { color: var(--bs-red); font-size: .9rem; font-weight: 800; }

.bs-steps { counter-reset: bs-steps; display: grid; gap: 0; grid-template-columns: repeat(4, 1fr); }
.bs-steps article { border-top: 2px solid var(--bs-cream-deep); padding: 34px 28px 15px 0; position: relative; }
.bs-steps article::before { background: var(--bs-red); border-radius: 50%; content: ''; height: 12px; left: 0; position: absolute; top: -7px; width: 12px; }
.bs-steps span { color: var(--bs-red); display: block; font-size: 2.6rem; font-weight: 850; margin-bottom: 24px; }
.bs-steps p { color: var(--bs-muted); font-size: .94rem; }

.bs-security { background: var(--bs-green-dark); display: grid; grid-template-columns: 1fr 1fr; min-height: 630px; }
.bs-security-copy { align-self: center; color: rgba(255,255,255,.84); max-width: 650px; padding: 70px clamp(35px, 7vw, 100px); }
.bs-security-copy h2 { color: var(--bs-white); }
.bs-security-copy .bs-kicker { color: #efc89a; }
.bs-security-image { min-height: 500px; }
.bs-security .bs-image-placeholder { background-color: #304139; }
.bs-security .bs-image-placeholder span { color: rgba(255,255,255,.66); }

.bs-location-fallback,
.bs-review-fallback { border: 1px solid var(--bs-border); border-radius: 12px; margin: 0 auto; max-width: 820px; padding: 36px; text-align: center; }

.bs-faq-layout { display: grid; gap: 70px; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); }
.bs-faq-intro { align-self: start; position: sticky; top: 40px; }
.bs-faq-list details { border-bottom: 1px solid var(--bs-border); padding: 0; }
.bs-faq-list summary { cursor: pointer; font-size: 1.05rem; font-weight: 800; list-style: none; padding: 22px 42px 22px 0; position: relative; }
.bs-faq-list summary::-webkit-details-marker { display: none; }
.bs-faq-list summary::after { color: var(--bs-red); content: '+'; font-size: 1.6rem; position: absolute; right: 5px; top: 14px; }
.bs-faq-list details[open] summary::after { content: '−'; }
.bs-faq-list details p { color: var(--bs-muted); padding: 0 45px 20px 0; }

.bs-final-cta { background: var(--bs-red); color: rgba(255,255,255,.9); padding: 80px 0; text-align: center; }
.bs-final-cta h2 { color: var(--bs-white); }
.bs-final-cta .bs-kicker { color: #ffe2c1; }
.bs-final-cta p { font-size: 1.15rem; margin-inline: auto; max-width: 720px; }
.bs-final-cta strong { display: block; font-size: .9rem; margin-top: 28px; }

.bs-mobile-actions { display: none; }

@media (max-width: 1024px) {
    .bs-card-grid.bs-four { grid-template-columns: repeat(2, 1fr); }
    .bs-trust-grid { grid-template-columns: repeat(2, 1fr); }
    .bs-trust-grid > div:nth-child(2) { border-right: 0; }
    .bs-benefit-grid { grid-template-columns: repeat(2, 1fr); }
    .bs-steps { grid-template-columns: repeat(2, 1fr); gap: 28px 0; }
}

@media (max-width: 780px) {
    .barn-store-homepage { font-size: 16px; padding-bottom: 62px; }
    .bs-container { width: min(100% - 30px, 1200px); }
    .bs-section { padding: 58px 0; }
    .bs-two-col,
    .bs-security,
    .bs-faq-layout { grid-template-columns: 1fr; }
    .bs-hero { min-height: 620px; text-align: center; }
    .bs-hero-overlay { background: rgba(20,31,26,.73); }
    .bs-hero-inner { padding: 75px 0; }
    .bs-hero h1 { font-size: clamp(2.45rem, 12vw, 4rem); }
    .bs-hero-copy { margin-inline: auto; }
    .bs-button-row { flex-direction: column; }
    .bs-button-row .bs-btn { width: 100%; }
    .bs-hero-proof { line-height: 1.8; }
    .bs-inline-form { flex-direction: column; }
    .bs-inline-form .bs-btn { width: 100%; }
    .bs-trust-grid,
    .bs-card-grid.bs-four,
    .bs-card-grid.bs-three,
    .bs-benefit-grid,
    .bs-steps { grid-template-columns: 1fr; }
    .bs-trust-grid > div { border-bottom: 1px solid rgba(255,255,255,.14); border-right: 0; padding: 0 0 20px; }
    .bs-trust-grid > div:last-child { border-bottom: 0; }
    .bs-image-card { min-height: 360px; }
    .bs-security-image { min-height: 360px; order: 1; }
    .bs-security-copy { order: 2; padding: 58px 25px; }
    .bs-faq-intro { position: static; }
    .bs-mobile-actions { background: var(--bs-white); border-top: 1px solid var(--bs-border); bottom: 0; display: grid; grid-template-columns: 1fr 1fr; left: 0; position: fixed; right: 0; z-index: 9998; }
    .bs-mobile-actions a { color: var(--bs-charcoal); font-size: .83rem; font-weight: 850; padding: 17px 8px; text-align: center; text-decoration: none; }
    .bs-mobile-actions a:first-child { background: var(--bs-red); color: var(--bs-white); }
}

@media (prefers-reduced-motion: reduce) {
    .barn-store-homepage * { scroll-behavior: auto !important; transition: none !important; }
}

/* Version 2 editable module refinements */
.bshp-editable-section {
    margin: 0;
    max-width: none;
    width: 100%;
}
.bshp-editable-section > section {
    margin: 0;
}
.bshp-editable-section .bs-small-note {
    color: var(--bs-muted);
    font-size: .78rem;
    margin: 20px auto 0;
    max-width: 900px;
    text-align: center;
}
.bshp-editable-section .bs-card .bs-btn-text {
    margin-top: 12px;
}
.bshp-editable-section .bs-mobile-actions a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* v2.0.1: Keep Beaver Builder's editable module wrapper without adding module margins. */
.fl-module[class*="fl-module-bshp-"] > .fl-module-content,
.fl-module.fl-module-barn-store-homepage > .fl-module-content {
    margin: 0;
}
