/* Toolhouse dark theme. Loaded site-wide. Colours match design-tokens.md (dark variant). */
:root{--th-bg:#0b1412;--th-bg2:#0f1b18;--th-surface:#13211e;--th-surface2:#1d302b;--th-line:#2d443e;--th-fg:#eaf1ec;--th-muted:#a3b5ad;--th-o:#ff7a3d;--th-o2:#ffb347;--th-ot:#ff9a66;--th-mint:#4ee0b5;--th-ink:#1b0e06}
html{color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:90px}
body,body.elementor-page,#page,.site-content,.ast-separate-container,.ast-separate-container .site-content{background:var(--th-bg)!important;color:var(--th-fg)}
::selection{background:var(--th-o);color:var(--th-ink)}
a{color:var(--th-ot)}
a:hover{color:var(--th-o2)}
:focus-visible{outline:3px solid var(--th-o2)!important;outline-offset:3px}

/* header */
header#masthead,.hfe-header,.ehf-header{background:rgba(11,20,18,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.ehf-header #masthead{position:sticky;top:0;z-index:60;border-bottom:1px solid var(--th-line)}

/* buttons */
.elementor-widget-button .elementor-button{border-radius:12px;font-weight:700;transition:transform .18s ease,box-shadow .2s ease,background .2s ease}
.elementor-widget-button.th-btn-primary .elementor-button{background-image:linear-gradient(135deg,var(--th-o),var(--th-o2));background-color:var(--th-o);color:var(--th-ink);border:0;box-shadow:0 10px 30px -10px rgba(255,122,61,.7)}
.elementor-widget-button.th-btn-primary .elementor-button:hover{transform:translateY(-2px);box-shadow:0 16px 38px -10px rgba(255,122,61,.9);color:var(--th-ink)}
.elementor-widget-button.th-btn-ghost .elementor-button{background:rgba(255,255,255,.04);border:1px solid var(--th-line);color:var(--th-fg)}
.elementor-widget-button.th-btn-ghost .elementor-button:hover{border-color:var(--th-o);background:rgba(255,122,61,.1);color:var(--th-fg);transform:translateY(-2px)}

/* hero */
#top{position:relative;overflow:hidden;background:radial-gradient(52rem 28rem at 88% 8%,rgba(255,122,61,.26),transparent 62%),radial-gradient(40rem 26rem at 2% 100%,rgba(78,224,181,.16),transparent 60%),var(--th-bg)}
#top::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.07) 1.4px,transparent 1.6px);background-size:30px 30px;-webkit-mask-image:linear-gradient(to bottom,#000 40%,transparent);mask-image:linear-gradient(to bottom,#000 40%,transparent)}
#top>*{position:relative}
.elementor-element-ffdfa3d .elementor-heading-title{background:linear-gradient(100deg,#fff 0%,#ffd9c4 38%,var(--th-o) 74%,var(--th-o2) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.th-heroimg img{border-radius:28px;box-shadow:0 40px 90px -30px rgba(255,122,61,.6),0 0 0 1px rgba(255,255,255,.08)}
@media (prefers-reduced-motion:no-preference){.th-heroimg img{animation:thfloat 6s ease-in-out infinite}@keyframes thfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}}

/* section headings get an accent bar */
.elementor-widget-heading h2.elementor-heading-title::after{content:"";display:block;width:68px;height:5px;border-radius:3px;margin-top:14px;background:linear-gradient(90deg,var(--th-o),var(--th-o2))}

/* section backgrounds */
#tools{background:radial-gradient(44rem 22rem at 100% 0,rgba(78,224,181,.10),transparent 60%),var(--th-bg)}
#articles,#about,#contact{background:linear-gradient(180deg,var(--th-surface) 0%,var(--th-bg2) 100%)!important;border-top:1px solid var(--th-line)}
#process{background:radial-gradient(40rem 20rem at 0 100%,rgba(255,122,61,.10),transparent 60%),var(--th-bg)}
#faq{background:radial-gradient(46rem 24rem at 50% 0,rgba(255,122,61,.10),transparent 60%),var(--th-bg)}

/* cards: about + process */
.th-acard,.th-pcard{background:linear-gradient(180deg,var(--th-surface2),var(--th-surface))!important;border:1px solid var(--th-line)!important;border-radius:18px!important;transition:transform .22s ease,box-shadow .25s ease,border-color .2s ease}
.th-acard:hover,.th-pcard:hover{transform:translateY(-6px);border-color:var(--th-o)!important;box-shadow:0 24px 50px -24px rgba(255,122,61,.55)}
.th-pcard{border-top:4px solid var(--th-o)!important}
#process div.elementor-heading-title{background:linear-gradient(135deg,var(--th-o),var(--th-o2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

/* article rows */
.th-arow{border-radius:16px;padding-inline:20px!important;transition:background .2s ease,transform .2s ease}
.th-arow:hover{background:rgba(255,122,61,.07);transform:translateX(6px)}
.th-arow h3 a,.th-arow .elementor-heading-title a{color:var(--th-fg)}
.th-arow:hover h3 a,.th-arow:hover .elementor-heading-title a{color:var(--th-o2)}

/* FAQ accordion */
.th-faq .elementor-accordion{display:flex;flex-direction:column;gap:14px;counter-reset:thfaq}
.th-faq .elementor-accordion .elementor-accordion-item{counter-increment:thfaq;border:1px solid var(--th-line)!important;border-radius:18px;background:linear-gradient(180deg,var(--th-surface),#101c19);overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .25s ease,background .25s ease}
.th-faq .elementor-accordion .elementor-accordion-item:hover{transform:translateY(-2px);border-color:rgba(255,122,61,.6)!important;box-shadow:0 16px 36px -20px rgba(255,122,61,.6)}
.th-faq .elementor-accordion .elementor-accordion-item:has(.elementor-active){border-color:var(--th-o)!important;background:linear-gradient(135deg,rgba(255,122,61,.18),var(--th-surface) 58%);box-shadow:0 0 0 1px rgba(255,122,61,.35),0 26px 56px -26px rgba(255,122,61,.7)}
.th-faq .elementor-accordion .elementor-tab-title{display:flex;align-items:center;gap:16px;margin:0;padding:20px 24px!important;border:0!important;background:transparent!important;cursor:pointer}
.th-faq .elementor-accordion .elementor-tab-title::before{content:counter(thfaq,decimal-leading-zero);flex:none;display:grid;place-items:center;min-width:46px;height:46px;border-radius:13px;font-family:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;font-weight:800;font-size:1.5rem;line-height:1;color:var(--th-o2);background:rgba(255,122,61,.12);border:1px solid rgba(255,122,61,.38)}
.th-faq .elementor-accordion .elementor-tab-title.elementor-active::before{background:linear-gradient(135deg,var(--th-o),var(--th-o2));color:var(--th-ink);border-color:transparent}
.th-faq .elementor-accordion .elementor-accordion-title{order:2;flex:1;font-size:1.18rem;font-weight:600;line-height:1.35;color:var(--th-fg)!important;text-decoration:none}
.th-faq .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-title{color:#fff!important}
.th-faq .elementor-accordion .elementor-accordion-icon{order:3;margin:0 0 0 auto;float:none;display:grid!important;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid var(--th-line);transition:transform .25s ease,background .2s ease}
.th-faq .elementor-accordion .elementor-accordion-icon svg{width:14px;height:14px;fill:var(--th-ot)}
.th-faq .elementor-accordion .elementor-accordion-icon span{line-height:0;width:auto}
.th-faq .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon{background:linear-gradient(135deg,var(--th-o),var(--th-o2));border-color:transparent}
.th-faq .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon svg{fill:var(--th-ink)}
.th-faq .elementor-accordion .elementor-tab-content{padding:0 28px 24px 86px!important;border:0!important;color:var(--th-muted)!important;font-size:1.05rem;line-height:1.7}
.th-faq .elementor-accordion .elementor-tab-content p{margin:0;color:var(--th-muted)}
@media (max-width:767px){.th-faq .elementor-accordion .elementor-tab-title{padding:16px!important;gap:12px}.th-faq .elementor-accordion .elementor-tab-title::before{min-width:38px;height:38px;font-size:1.2rem}.th-faq .elementor-accordion .elementor-accordion-title{font-size:1.04rem}.th-faq .elementor-accordion .elementor-tab-content{padding:0 18px 20px 18px!important}}

/* tool bench extras */
.th-app .card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border-radius:18px;border:1px solid var(--line);overflow:hidden}
.th-app .card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),#ffb347);opacity:.0;transition:opacity .2s}
.th-app .card:hover{transform:translateY(-6px);background:linear-gradient(180deg,var(--surface-2),var(--surface));box-shadow:0 24px 50px -24px rgba(255,122,61,.55)}
.th-app .card:hover::before{opacity:1}
.th-app .card .ico{background:linear-gradient(135deg,var(--accent),#ffb347);border-radius:12px}
.th-app .search input{border-radius:12px}

/* contact form */
.th-formcard{background:linear-gradient(180deg,var(--th-surface2),var(--th-surface))!important;border:1px solid var(--th-line)!important;border-radius:22px!important;padding:30px!important;box-shadow:0 30px 70px -40px rgba(0,0,0,.8)}
.frm-fluent-form .ff-el-input--label label,.frm-fluent-form label{color:var(--th-fg)!important;font-weight:600}
.frm-fluent-form .ff-el-form-control{background:#0e1a17!important;color:var(--th-fg)!important;border:1px solid var(--th-line)!important;border-radius:12px!important;padding:12px 14px}
.frm-fluent-form .ff-el-form-control:focus{border-color:var(--th-o)!important;box-shadow:0 0 0 3px rgba(255,122,61,.25)!important}
.frm-fluent-form .ff-el-form-control::placeholder{color:#7f938b}
.frm-fluent-form .ff-btn-submit{background:linear-gradient(135deg,var(--th-o),var(--th-o2))!important;color:var(--th-ink)!important;border:0!important;border-radius:12px!important;font-weight:700;padding:13px 26px;box-shadow:0 10px 30px -10px rgba(255,122,61,.7)}
.frm-fluent-form .ff-btn-submit:hover{transform:translateY(-2px)}
.ff-message-success{background:rgba(78,224,181,.12)!important;border:1px solid var(--th-mint)!important;color:var(--th-fg)!important;border-radius:12px}

/* footer */
.ehf-footer #colophon,footer.hfe-footer{border-top:1px solid var(--th-line)}

/* blog posts (Astra single) */
.single .ast-article-single,.ast-separate-container .ast-article-single{background:linear-gradient(180deg,var(--th-surface),#101c19)!important;border:1px solid var(--th-line);border-radius:22px;padding:2.2rem!important;box-shadow:0 30px 70px -40px rgba(0,0,0,.8)}
.single .entry-title,.single .entry-title a{color:var(--th-fg)!important;font-family:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;font-weight:800;line-height:1;font-size:clamp(2.6rem,6vw,4.2rem)}
.single .entry-meta,.single .entry-meta a,.single .cat-links a{color:var(--th-muted)!important}
.single .entry-content,.single .entry-content p,.single .entry-content li{color:#d4dfd9;line-height:1.75}
.single .entry-content h2{color:var(--th-fg);font-family:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;font-weight:800;font-size:2.2rem;line-height:1;margin-top:2.2rem}
.single .entry-content a{color:var(--th-ot)}
.single .entry-content a:hover{color:var(--th-o2)}
.single .entry-content table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
.single .entry-content th,.single .entry-content td{border:1px solid var(--th-line);padding:.55rem .8rem;color:var(--th-fg);text-align:left}
.single .entry-content th{background:var(--th-surface2);color:var(--th-o2)}
.single .entry-content pre{background:#0e1a17;color:#ffd9c4;border:1px solid var(--th-line);border-radius:12px;padding:1rem;overflow-x:auto}
.single .entry-content code{color:#ffd9c4;background:rgba(255,122,61,.1);border-radius:4px;padding:.1em .35em}
.single .entry-content pre code{background:none;padding:0}
.single .entry-content hr{border:0;height:1px;background:var(--th-line);margin:2rem 0}
.single .post-navigation a,.single .ast-single-post-order a{color:var(--th-ot)}
