/*
Theme Name: Business Generator
Theme URI: https://businessgenerator.co.nz
Author: Bry Moulton
Description: Block theme for Business Generator, helping New Zealand SMEs through start-up, growth and exit. Activating the theme creates the site pages (Home, Services, Start-up, Growth, Exit, Pricing, About, Partners, Contact, Insights) and sets the home page.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: business-generator
*/

:root { --bg-ink:#102A33; --bg-ink-soft:#3E5660; --bg-teal:#1F6F78; --bg-sun:#F2B705; --bg-mist:#E3ECEA; --bg-paper:#F5F7F6; }

html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
:where(a, button, input, textarea, select, summary):focus-visible { outline:3px solid var(--bg-sun); outline-offset:3px; border-radius:2px; }
::selection { background:var(--bg-sun); color:var(--bg-ink); }

/* Header */
.bg-site-header { position:sticky; top:0; z-index:20; background:rgba(245,247,246,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--bg-mist); }
.admin-bar .bg-site-header { top:32px; }
@media (max-width:782px){ .admin-bar .bg-site-header { top:46px; } }
.bg-logo { margin:0; line-height:0; }
.bg-logo img { display:block; height:52px; width:auto; }
@media (max-width:600px){ .bg-logo img { height:42px; } .bg-header-cta { display:none !important; } }
.bg-footer-logo { margin:0; line-height:0; }
.bg-footer-logo img { display:block; height:56px; width:auto; }
.bg-site-header .wp-block-navigation { font-weight:500; }
.bg-site-header .wp-block-navigation__submenu-container { border:1px solid var(--bg-mist) !important; border-radius:8px; padding:.5rem 0; box-shadow:0 12px 32px -12px rgba(16,42,51,.25); }

/* Type roles */
.bg-display { font-size:var(--wp--preset--font-size--huge) !important; line-height:.95 !important; letter-spacing:-.035em; }
.bg-title { font-size:var(--wp--preset--font-size--xx-large) !important; line-height:1 !important; letter-spacing:-.03em; }
.bg-lede { font-size:var(--wp--preset--font-size--large); line-height:1.5; color:var(--bg-ink-soft); }
.bg-band-ink .bg-lede { color:#C9D6D8; }

/* Sections */
.bg-hero { padding-top:clamp(3.5rem,9vw,7.5rem); padding-bottom:clamp(2rem,4vw,3rem); }
.bg-section { padding-top:clamp(4rem,8vw,7rem); padding-bottom:clamp(4rem,8vw,7rem); }
.bg-band-mist { background:var(--bg-mist); }
.bg-band-ink { background:var(--bg-ink); color:var(--bg-paper); }
.bg-band-ink :where(h1,h2,h3,h4) { color:#fff; }
.bg-band-ink a:where(:not(.wp-element-button)) { color:var(--bg-sun); }
.bg-band-ink .is-style-outline .wp-block-button__link { color:#fff !important; border-color:#fff !important; }
.bg-band-ink .is-style-outline .wp-block-button__link:hover { background:#fff !important; color:var(--bg-ink) !important; }

/* Lifecycle curve: the one orchestrated moment on the site */
.bg-curve { margin-top:clamp(2rem,5vw,4rem); }
.bg-curve svg { display:block; width:100%; height:auto; overflow:visible; }
.bg-curve .line { stroke-dasharray:1600; stroke-dashoffset:1600; animation:bg-draw 1.8s cubic-bezier(.6,0,.2,1) .2s forwards; }
.bg-curve .node { opacity:0; animation:bg-pop .4s ease-out forwards; }
.bg-curve .n1 { animation-delay:.5s; } .bg-curve .n2 { animation-delay:1.1s; } .bg-curve .n3 { animation-delay:1.7s; }
@keyframes bg-draw { to { stroke-dashoffset:0; } }
@keyframes bg-pop { to { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .bg-curve .line { animation:none; stroke-dashoffset:0; } .bg-curve .node { animation:none; opacity:1; } }
.bg-curve text { font-family:var(--wp--preset--font-family--display); font-weight:700; fill:var(--bg-ink); }
.bg-curve text.sub { font-family:var(--wp--preset--font-family--body); font-weight:400; fill:var(--bg-ink-soft); }

/* Stages: a true sequence, so numbered */
.bg-stages { gap:clamp(1.5rem,3vw,3rem) !important; }
.bg-stage { border-top:3px solid var(--bg-ink); padding-top:1.25rem; }
.bg-stage.is-exit { border-top-color:var(--bg-sun); }
.bg-stage-num { font-family:var(--wp--preset--font-family--display); font-size:3.5rem; font-weight:800; line-height:1; color:var(--bg-teal); margin:0 0 .75rem; }
.bg-stage.is-exit .bg-stage-num { color:#9A7400; }
.bg-stage h3 { margin-top:0; }
.bg-more a { font-weight:600; text-decoration-thickness:2px; text-underline-offset:4px; }

/* Checklist */
.bg-checklist { list-style:none; padding-left:0; }
.bg-checklist li { position:relative; padding:.85rem 0 .85rem 2.25rem; border-bottom:1px solid #C9D6D3; }
.bg-checklist li::before { content:""; position:absolute; left:.1rem; top:1.3rem; width:1rem; height:.5rem; border-left:3px solid var(--bg-teal); border-bottom:3px solid var(--bg-teal); transform:rotate(-45deg); }
.bg-band-ink .bg-checklist li { border-color:#2B4A55; }
.bg-band-ink .bg-checklist li::before { border-color:var(--bg-sun); }

/* Steps */
.bg-steps { list-style:none; padding-left:0; counter-reset:step; display:grid; gap:1.75rem; }
.bg-steps li { counter-increment:step; position:relative; padding-left:4rem; min-height:3rem; }
.bg-steps li::before { content:counter(step); position:absolute; left:0; top:-.1rem; width:2.75rem; height:2.75rem; border-radius:50%; background:var(--bg-sun); color:var(--bg-ink); font-family:var(--wp--preset--font-family--display); font-weight:800; font-size:1.25rem; display:grid; place-items:center; }
.bg-steps strong { display:block; font-family:var(--wp--preset--font-family--display); font-size:1.25rem; }

/* Cards and notes */
.bg-card { background:#fff; border:1px solid #D3DEDB; border-radius:10px; padding:clamp(1.5rem,3vw,2.25rem) !important; height:100%; }
.bg-note { border-left:4px solid var(--bg-sun); background:#fff; padding:1.25rem 1.5rem !important; border-radius:0 8px 8px 0; font-size:var(--wp--preset--font-size--small); }
.bg-contact-list p { margin:.25rem 0; }

/* Footer */
.bg-site-footer { font-size:var(--wp--preset--font-size--small); }
.bg-site-footer a { color:#fff; text-decoration:none; }
.bg-site-footer a:hover { text-decoration:underline; color:var(--bg-sun); }
.bg-footer-nav { list-style:none; padding:0 !important; margin:0; display:grid; gap:.5rem; }
.bg-legal { border-top:1px solid #2B4A55; padding-top:1.5rem; color:#9FB4B8; }

/* Gravity Forms */
.gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]), .gform_wrapper textarea, .gform_wrapper select { border:1px solid #B9C9C6 !important; border-radius:8px !important; padding:.75rem !important; background:#fff; }
.gform_wrapper .gform_button { background:var(--bg-sun) !important; color:var(--bg-ink) !important; border:0 !important; border-radius:8px !important; padding:.9rem 1.6rem !important; font-weight:700 !important; cursor:pointer; }
@media (max-width:600px){ .bg-curve text { display:none; } }
.bg-hero-flush { padding-bottom:0 !important; } .bg-hero-flush + * , .bg-hero-flush .bg-curve { margin-bottom:0 !important; } .bg-hero-flush + .wp-block-group { margin-top:0 !important; }
/* Full-width bands stack flush */
.wp-block-post-content > .alignfull, main > .wp-block-post-content { margin-top:0 !important; margin-bottom:0 !important; }
main.wp-block-group + footer, .wp-site-blocks > footer { margin-top:0 !important; }

.bg-hero-flush { overflow-x:clip; }

/* Pricing */
.bg-plans { gap:1.5rem !important; }
.bg-plan { background:#fff; border:1px solid #D3DEDB; border-radius:12px; padding:clamp(1.75rem,3vw,2.5rem) !important; height:100%; display:flex; flex-direction:column; }
.bg-plan.is-gold { background:var(--bg-ink); color:var(--bg-paper); border-color:var(--bg-ink); }
.bg-plan.is-gold :where(h2,h3) { color:#fff; }
.bg-plan-tier { font-family:var(--wp--preset--font-family--display); font-weight:800; font-size:1rem; letter-spacing:.02em; margin:0; }
.bg-plan-tier::before { content:""; display:inline-block; width:.8em; height:.8em; border-radius:50%; margin-right:.5em; vertical-align:-.05em; background:var(--tier,#A8703A); }
.bg-plan.is-bronze { --tier:#A8703A; } .bg-plan.is-silver { --tier:#A9B4B8; } .bg-plan.is-gold { --tier:var(--bg-sun); }
.bg-plan-price { font-family:var(--wp--preset--font-family--display); font-size:clamp(2.75rem,5vw,3.75rem); font-weight:800; line-height:1; letter-spacing:-.03em; margin:1rem 0 .25rem !important; }
.bg-plan-price span { font-size:1rem; font-weight:500; letter-spacing:0; margin-left:.25rem; }
.bg-plan-for { color:var(--bg-ink-soft); margin-top:0 !important; }
.bg-plan.is-gold .bg-plan-for { color:#C9D6D8; }
.bg-plan .bg-checklist { margin-top:1.25rem; flex:1; }
.bg-plan .bg-checklist li { padding-top:.6rem; padding-bottom:.6rem; font-size:var(--wp--preset--font-size--small); }
.bg-plan .bg-checklist li::before { top:1rem; }
.bg-plan.is-gold .bg-checklist li { border-color:#2B4A55; }
.bg-plan.is-gold .bg-checklist li::before { border-color:var(--bg-sun); }
.bg-plan .wp-block-buttons { margin-top:1.5rem; }
.bg-plan .wp-block-button, .bg-plan .wp-block-button__link { width:100%; }
.bg-plan.is-gold .is-style-outline .wp-block-button__link { color:#fff !important; border-color:#fff !important; }
