/*
Theme Name: Trailburn Elementor
Theme URI: https://trailburn.com/
Author: Trailburn
Description: Elementor-required Trailburn theme. Public pages, header and footer are editable as Trailburn Elementor widgets; app workflows remain in Trailburn Core.
Version: 2.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: trailburn
*/

:root {
  --tb-bg: #fff;
  --tb-text: #0a0a1a;
  --tb-card: #fff;
  --tb-primary: #0000ad;
  --tb-primary-contrast: #fff;
  --tb-secondary: #eef5ff;
  --tb-muted: #5a6a8a;
  --tb-border: #d0e0f0;
  --tb-accent: #87ceeb;
  --tb-danger: #d51f4d;
  --tb-success: #087b51;
  --tb-shadow: 0 4px 24px -8px rgba(10,10,26,.14);
  --tb-glow: 0 12px 40px -12px rgba(0,0,173,.24);
  --tb-gradient: linear-gradient(135deg,#0000ad,#87ceeb);
  --tb-radius: 10px;
  --tb-container: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.trailburn-site { margin: 0; background: var(--tb-bg); color: var(--tb-text); font-family: "Space Grotesk", system-ui, sans-serif; font-feature-settings: "ss01","cv11"; }
body.admin-bar .tb-site-header { top: 32px; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { line-height: 1.7; }
h1,h2,h3,h4 { letter-spacing: -.025em; line-height: 1.08; margin-top: 0; }
ul { padding-left: 1.2rem; }
button,input,select,textarea { font: inherit; }

.tb-container { width: min(calc(100% - 48px), var(--tb-container)); margin-inline: auto; }
.tb-narrow { width: min(calc(100% - 48px), 980px); margin-inline: auto; }
.tb-site-main { min-height: 55vh; }
.tb-section { padding: 96px 0; border-top: 1px solid var(--tb-border); }
.tb-section:first-child { border-top: 0; }
.tb-section-soft { background: rgba(238,245,255,.45); }
.tb-section-hero { padding: 78px 0 96px; }
.tb-grid { display: grid; gap: 24px; }
.tb-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.tb-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.tb-grid-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.tb-flex { display: flex; }
.tb-wrap { flex-wrap: wrap; }
.tb-gap-12 { gap: 12px; }
.tb-gap-24 { gap: 24px; }
.tb-align-center { align-items: center; }
.tb-justify-between { justify-content: space-between; }
.tb-text-center { text-align: center; }
.tb-max-2xl { max-width: 700px; }
.tb-max-4xl { max-width: 930px; }
.tb-mx-auto { margin-inline: auto; }
.tb-mt-12 { margin-top: 12px; }
.tb-mt-24 { margin-top: 24px; }
.tb-mt-40 { margin-top: 40px; }
.tb-mt-64 { margin-top: 64px; }
.tb-mb-8 { margin-bottom: 8px; }
.tb-mb-16 { margin-bottom: 16px; }
.tb-mb-24 { margin-bottom: 24px; }
.tb-mb-40 { margin-bottom: 40px; }
.tb-mb-64 { margin-bottom: 64px; }
.tb-primary { color: var(--tb-primary); }
.tb-muted { color: var(--tb-muted); }
.tb-small-muted { color: var(--tb-muted); font-size: 13px; }
.tb-gradient-text { background: var(--tb-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tb-eyebrow { font-family: "JetBrains Mono", monospace; font-size: 12px; letter-spacing: .02em; color: var(--tb-primary); margin-bottom: 18px; }
.tb-display { font-size: clamp(56px,8vw,112px); line-height: .94; margin-bottom: 30px; max-width: 1000px; }
.tb-page-title { font-size: clamp(48px,6.2vw,82px); margin-bottom: 24px; }
.tb-section-title { font-size: clamp(38px,4.5vw,60px); max-width: 850px; margin-bottom: 22px; }
.tb-lead { font-size: clamp(18px,2vw,22px); color: var(--tb-muted); max-width: 740px; line-height: 1.65; }

.tb-site-header { position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid var(--tb-border); background: rgba(255,255,255,.88); backdrop-filter: blur(14px); }
.tb-nav-wrap { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.tb-brand-link { display: inline-flex; align-items: center; }
.tb-logo { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.tb-logo-mark { width: 30px; height: 30px; color: var(--tb-primary); }
.tb-logo-word { font-size: 21px; letter-spacing: -.04em; text-transform: lowercase; }
.custom-logo { max-height: 42px; width: auto; }
.tb-main-nav { margin-left: auto; }
.tb-menu { display: flex; align-items: center; gap: 32px; list-style: none; margin: 0; padding: 0; color: var(--tb-muted); font-size: 14px; }
.tb-menu a:hover,.tb-menu .current-menu-item>a { color: var(--tb-text); }
.tb-nav-actions { display: flex; align-items: center; gap: 16px; }
.tb-nav-text { font-size: 14px; color: var(--tb-muted); }
.tb-nav-text:hover { color: var(--tb-text); }
.tb-menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--tb-border); background: var(--tb-card); padding: 10px; }
.tb-menu-toggle span { display: block; height: 2px; background: var(--tb-text); margin: 4px 0; }

.tb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--tb-primary); color: var(--tb-primary-contrast); padding: 15px 25px; border: 1px solid var(--tb-primary); font-size: 13px; font-weight: 700; letter-spacing: .02em; cursor: pointer; transition: .2s ease; }
.tb-btn:hover { color: #fff; box-shadow: var(--tb-glow); transform: translateY(-1px); }
.tb-btn-small { padding: 11px 16px; font-size: 12px; }
.tb-btn-outline { background: transparent; color: var(--tb-text); border-color: var(--tb-border); }
.tb-btn-outline:hover { background: var(--tb-secondary); color: var(--tb-text); box-shadow: none; }
.tb-btn-block { width: 100%; }
.tb-icon { width: 18px; height: 18px; flex: 0 0 auto; }
.tb-icon-lg { width: 32px; height: 32px; }

.tb-hero-media { position: relative; margin-top: 56px; border: 1px solid var(--tb-border); border-radius: 16px; overflow: hidden; box-shadow: var(--tb-shadow); }
.tb-hero-media img { display: block; width: 100%; height: clamp(300px,42vw,520px); object-fit: cover; }
.tb-hero-media:after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top,rgba(255,255,255,.88),transparent 45%); pointer-events: none; }
.tb-hero-caption { position: absolute; left: 30px; bottom: 28px; z-index: 2; }
.tb-hero-caption strong { font-size: clamp(22px,3vw,32px); }

.tb-card { background: var(--tb-card); border: 1px solid var(--tb-border); padding: 30px; box-shadow: none; transition: .2s ease; }
.tb-card:hover { border-color: var(--tb-primary); }
.tb-card-glow { border-color: var(--tb-primary); box-shadow: var(--tb-glow); }
.tb-card-rounded { border-radius: var(--tb-radius); }
.tb-card-image { padding: 0; overflow: hidden; }
.tb-card-image img { width: 100%; height: 190px; object-fit: cover; display: block; }
.tb-card-body { padding: 30px; }
.tb-card h3 { font-size: 22px; margin-bottom: 12px; }
.tb-card p { color: var(--tb-muted); font-size: 14px; margin-bottom: 0; }
.tb-card-number { font-family: "JetBrains Mono",monospace; color: var(--tb-muted); font-size: 12px; margin-bottom: 18px; }
.tb-card-icon { color: var(--tb-primary); margin-bottom: 20px; }

.tb-forecast-card { margin-top: 72px; border: 1px solid var(--tb-border); border-radius: var(--tb-radius); padding: 30px; box-shadow: var(--tb-shadow); }
.tb-forecast-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.tb-forecast-score { text-align: right; }
.tb-forecast-score strong { display: block; color: var(--tb-primary); font-size: 38px; }
.tb-bars { display: flex; align-items: flex-end; height: 170px; gap: 7px; margin-top: 28px; }
.tb-bar { flex: 1; min-width: 8px; background: var(--tb-gradient); border-radius: 5px 5px 0 0; }
.tb-forecast-labels { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 16px; font: 12px "JetBrains Mono",monospace; color: var(--tb-muted); }

.tb-stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--tb-border); border: 1px solid var(--tb-border); border-radius: var(--tb-radius); overflow: hidden; }
.tb-stat { background: var(--tb-bg); padding: 32px 22px; text-align: center; }
.tb-stat .tb-icon { width: 26px; height: 26px; color: var(--tb-primary); margin: 0 auto 14px; }
.tb-stat strong { display: block; font-size: clamp(30px,4vw,44px); }
.tb-stat span { font-size: 13px; color: var(--tb-muted); }

.tb-funnel-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--tb-border); border: 1px solid var(--tb-border); }
.tb-funnel { background: var(--tb-bg); padding: 34px; }
.tb-funnel .tb-stage { font: 12px "JetBrains Mono",monospace; color: var(--tb-primary); margin-bottom: 18px; }
.tb-funnel h3 { font-size: 34px; margin-bottom: 12px; }
.tb-funnel .tb-metric { border-top: 1px solid var(--tb-border); padding-top: 16px; color: var(--tb-muted); font: 12px "JetBrains Mono",monospace; }

.tb-testimonial { display: flex; flex-direction: column; min-height: 330px; }
.tb-stars { display: flex; gap: 3px; color: var(--tb-primary); margin-bottom: 18px; }
.tb-stars .tb-icon { fill: currentColor; width: 16px; height: 16px; }
.tb-quote { flex: 1; font-size: 15px; line-height: 1.75; }
.tb-person { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.tb-avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--tb-gradient); color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 700; }
.tb-person small { color: var(--tb-muted); }

.tb-price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.tb-price-card { position: relative; padding: 34px; border: 1px solid var(--tb-border); background: var(--tb-card); }
.tb-price-card.featured { border-color: var(--tb-primary); box-shadow: var(--tb-glow); }
.tb-price-badge { position: absolute; top: -13px; left: 32px; background: var(--tb-primary); color: #fff; padding: 6px 12px; font: 700 11px "JetBrains Mono",monospace; }
.tb-price { font-size: 54px; font-weight: 700; margin: 12px 0 18px; }
.tb-price small { font-size: 14px; color: var(--tb-muted); font-weight: 400; }
.tb-feature-list { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 14px; }
.tb-feature-list li { display: flex; gap: 10px; font-size: 14px; }
.tb-feature-list .tb-icon { color: var(--tb-primary); width: 16px; height: 16px; margin-top: 2px; }
.tb-info-row { display: flex; gap: 24px; align-items: center; padding: 30px; border: 1px solid var(--tb-border); margin-top: 56px; }

.tb-step-list { background: var(--tb-border); display: grid; gap: 1px; }
.tb-step { background: var(--tb-bg); display: grid; grid-template-columns: 130px 1fr; gap: 24px; padding: 42px; }
.tb-step:hover { background: rgba(238,245,255,.5); }
.tb-step-num { color: var(--tb-primary); font: 30px "JetBrains Mono",monospace; }
.tb-step h3 { font-size: 28px; margin-bottom: 10px; }
.tb-step p { margin: 0; color: var(--tb-muted); }

.tb-content { padding: 64px 0 96px; }
.tb-content article { max-width: 850px; }
.tb-content h1 { font-size: clamp(42px,6vw,72px); }
.tb-content h2 { margin-top: 45px; font-size: 32px; }
.tb-content p,.tb-content li { color: #35415c; }

.tb-site-footer { margin-top: 110px; border-top: 1px solid var(--tb-border); }
.tb-footer-grid { padding: 54px 0; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 34px; font-size: 14px; }
.tb-footer-logo .tb-logo-mark { width: 23px; height: 23px; }
.tb-footer-logo .tb-logo-word { font-size: 17px; }
.tb-footer-links { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 10px; color: var(--tb-muted); font-size: 13px; }
.tb-footer-links a:hover { color: var(--tb-text); }

.screen-reader-text { position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

@media (max-width: 960px) {
  body.admin-bar .tb-site-header { top: 46px; }
  .tb-grid-3,.tb-price-grid { grid-template-columns: 1fr; }
  .tb-grid-4,.tb-stats-grid { grid-template-columns: repeat(2,1fr); }
  .tb-grid-2 { grid-template-columns: 1fr; }
  .tb-funnel-grid { grid-template-columns: 1fr; }
  .tb-footer-grid { grid-template-columns: repeat(2,1fr); }
  .tb-menu-toggle { display: block; margin-left: auto; }
  .tb-main-nav { display: none; position: absolute; top: 72px; left: 0; right: 0; padding: 20px 24px; background: #fff; border-bottom: 1px solid var(--tb-border); }
  .tb-main-nav.is-open { display: block; }
  .tb-menu { align-items: flex-start; flex-direction: column; gap: 18px; }
  .tb-nav-actions { display: none; }
}

@media (max-width: 640px) {
  .tb-container,.tb-narrow { width: min(calc(100% - 32px), var(--tb-container)); }
  .tb-section { padding: 70px 0; }
  .tb-section-hero { padding: 55px 0 72px; }
  .tb-display { font-size: clamp(48px,17vw,70px); }
  .tb-page-title { font-size: 48px; }
  .tb-grid-4,.tb-stats-grid { grid-template-columns: 1fr; }
  .tb-forecast-header { align-items: flex-start; flex-direction: column; }
  .tb-forecast-score { text-align: left; }
  .tb-forecast-labels { grid-template-columns: 1fr; }
  .tb-step { grid-template-columns: 1fr; padding: 30px 24px; }
  .tb-footer-grid { grid-template-columns: 1fr; }
  .tb-info-row { align-items: flex-start; }
  .tb-hero-caption { left: 20px; bottom: 18px; }
  .tb-price-card { padding: 30px 24px; }
}

/* Exact page structures carried over from the supplied Lovable source. */
.tb-page-hero { padding: 78px 0 46px; }
.tb-page-body { padding: 0 0 96px; }
.tb-how-hero { padding-bottom: 46px; }
.tb-how-body { padding-top: 0; }
.tb-login-link { display: inline-flex; align-items: center; gap: 4px; }
.tb-login-link .tb-icon { width: 14px; height: 14px; }
.tb-icon-xl { width: 40px; height: 40px; }
.tb-icon-benefit { width: 28px; height: 28px; }
.tb-accent { color: var(--tb-accent); }
.tb-stage-two { color: #2a2ad8 !important; }
.tb-stage-three { color: #87ceeb !important; }
.tb-card-image-wrap { position: relative; height: 176px; overflow: hidden; }
.tb-card-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tb-card-image:hover .tb-card-image-wrap img { transform: scale(1.05); }
.tb-card-image-wrap span { position: absolute; inset: 0; background: linear-gradient(to top,var(--tb-card),rgba(255,255,255,.2),transparent); pointer-events: none; }
.tb-hero-media video { display: block; width: 100%; height: clamp(280px,36vw,440px); object-fit: cover; background: url('assets/images/hero-team.jpg') center/cover no-repeat; }
.tb-hero-media:after { background: linear-gradient(to top,rgba(255,255,255,.7),transparent 50%); }
.tb-price-desc { color: var(--tb-muted); min-height: 48px; margin-bottom: 30px; }
.tb-price-button { display: block; text-align: center; border: 1px solid var(--tb-border); padding: 13px 18px; font-size: 12px; font-weight: 700; margin-bottom: 30px; }
.tb-price-button:hover { background: var(--tb-secondary); }
.tb-price-button.featured { background: var(--tb-primary); border-color: var(--tb-primary); color: #fff; }
.tb-price-button.featured:hover { opacity: .9; }
.tb-info-row h3 { font-size: 21px; margin-bottom: 8px; }
.tb-info-row p { color: var(--tb-muted); font-size: 14px; margin: 0; }
.tb-vip-hero-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px; align-items: center; }
.tb-vip-highlight { border: 1px solid var(--tb-primary); background: var(--tb-card); padding: 32px; box-shadow: var(--tb-glow); }
.tb-vip-highlight h2 { font-size: 31px; margin-bottom: 12px; }
.tb-vip-highlight p { color: var(--tb-muted); font-size: 14px; margin-bottom: 24px; }
.tb-vip-recurring { border-top: 1px solid var(--tb-border); padding-top: 24px; }
.tb-vip-recurring h3 { font-size: 21px; margin-bottom: 5px; }
.tb-vip-recurring p { margin: 0; }
.tb-benefit { padding: 32px; }
.tb-benefit h3 { font-size: 18px; }
.tb-benefit p { line-height: 1.7; }
.tb-cta-section { padding-top: 128px; padding-bottom: 128px; }
.tb-cta-title { font-size: clamp(40px,5.5vw,64px); margin-bottom: 24px; }
.tb-cta-checks { display: flex; justify-content: center; gap: 24px; margin-top: 30px; color: var(--tb-muted); font-size: 12px; }
.tb-cta-checks span { display: inline-flex; align-items: center; gap: 6px; }
.tb-cta-checks .tb-icon { width: 13px; height: 13px; color: var(--tb-primary); }

@media (max-width: 960px) {
  .tb-vip-hero-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .tb-page-hero { padding: 56px 0 38px; }
  .tb-page-body { padding-bottom: 72px; }
  .tb-cta-checks { flex-wrap: wrap; gap: 14px 20px; }
  .tb-info-row { flex-direction: column; }
}


/* Elementor integration --------------------------------------------------- */
.elementor-page .tb-site-main > .elementor,
.elementor-page .tb-site-main > .elementor > .elementor-element,
.trailburn-elementor-layout-editor .elementor {
  width: 100%;
}
.elementor-widget-trailburn-header,
.elementor-widget-trailburn-footer,
.elementor-widget-trailburn-hero,
.elementor-widget-trailburn-stats,
.elementor-widget-trailburn-pillars,
.elementor-widget-trailburn-funnel,
.elementor-widget-trailburn-testimonials,
.elementor-widget-trailburn-cta,
.elementor-widget-trailburn-page-hero,
.elementor-widget-trailburn-pricing,
.elementor-widget-trailburn-info-strip,
.elementor-widget-trailburn-vip-hero,
.elementor-widget-trailburn-benefits,
.elementor-widget-trailburn-steps { margin-bottom: 0 !important; }
.elementor-widget-trailburn-header > .elementor-widget-container,
.elementor-widget-trailburn-footer > .elementor-widget-container,
.elementor-widget-trailburn-hero > .elementor-widget-container,
.elementor-widget-trailburn-stats > .elementor-widget-container,
.elementor-widget-trailburn-pillars > .elementor-widget-container,
.elementor-widget-trailburn-funnel > .elementor-widget-container,
.elementor-widget-trailburn-testimonials > .elementor-widget-container,
.elementor-widget-trailburn-cta > .elementor-widget-container,
.elementor-widget-trailburn-page-hero > .elementor-widget-container,
.elementor-widget-trailburn-pricing > .elementor-widget-container,
.elementor-widget-trailburn-info-strip > .elementor-widget-container,
.elementor-widget-trailburn-vip-hero > .elementor-widget-container,
.elementor-widget-trailburn-benefits > .elementor-widget-container,
.elementor-widget-trailburn-steps > .elementor-widget-container { padding: 0 !important; margin: 0 !important; }
.tb-elementor-header-layout { height: 72px; position: relative; z-index: 1000; }
.tb-elementor-header-layout .tb-site-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; }
.admin-bar .tb-elementor-header-layout .tb-site-header { top: 32px; }
body.tb-has-elementor-header .tb-site-main { min-height: 55vh; }
.tb-elementor-footer-layout .tb-site-footer { margin-top: 110px; }
.trailburn-elementor-layout-editor .tb-site-header { position: relative; top: auto; }
.trailburn-elementor-layout-editor .tb-site-footer { margin-top: 0; }
.tb-info-section { padding: 0 0 96px; }
.tb-info-section .tb-info-row { margin-top: 0; }
.elementor-editor-active .tb-elementor-header-layout .tb-site-header { position: relative; top: auto; }

@media (max-width: 960px) {
  .admin-bar .tb-elementor-header-layout .tb-site-header { top: 46px; }
}
