/*
Theme Name: 3DBooster
Theme URI: https://3dbooster.nl
Author: 3DBooster
Description: Custom theme for 3dbooster.nl, rebuilt to match the site's original design.
Version: 1.0
Text Domain: 3dbooster
*/

:root { --ink:#17191c; --ink-soft:#292c31; --orange:#f57c0b; --orange-dark:#d96000; --cream:#f6f4ef; --paper:#fffdf9; --muted:#6d7075; --line:#dedbd3; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Segoe UI","Aptos",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
p { color:var(--muted); line-height:1.75; }
.shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.section-space { padding-block:108px; }
.eyebrow { margin:0 0 18px; color:var(--orange-dark); font-size:.76rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
h1,h2,h3 { margin-top:0; letter-spacing:-.035em; }
h1 { font-size:clamp(3.5rem,7vw,6.8rem); line-height:.98; }
h2 { font-size:clamp(2.25rem,4.4vw,4.25rem); line-height:1.05; }
h3 { font-size:1.42rem; }
h1 span,.page-hero h1 span { color:var(--orange); }

.site-header { position:sticky; z-index:50; top:0; background:rgba(255,253,249,.92); border-bottom:1px solid rgba(222,219,211,.8); backdrop-filter:blur(16px); }
.header-inner { height:82px; display:flex; align-items:center; gap:34px; }
.brand { width:249.6px; overflow:hidden; }
.brand img { width:100%; aspect-ratio:3.82/1; object-fit:cover; object-position:left center; }
.desktop-nav { display:flex; gap:30px; margin-left:auto; }
.desktop-nav a { font-size:.93rem; font-weight:650; }
.desktop-nav a:hover { color:var(--orange-dark); }
.header-contact { padding:12px 21px; color:white; background:var(--ink); border-radius:999px; font-weight:750; }
.mobile-menu { display:none; position:relative; margin-left:auto; }
.mobile-menu-toggle { width:42px; height:42px; padding:0; display:grid; place-content:center; gap:4px; border:0; color:inherit; background:transparent; cursor:pointer; }
.mobile-menu-toggle span { width:22px; height:2px; background:var(--ink); transition:transform .2s,opacity .2s; display:block; }
.mobile-menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(6px) rotate(45deg); }
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.mobile-menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-6px) rotate(-45deg); }
.mobile-menu nav { display:none; position:absolute; right:0; top:50px; min-width:230px; padding:14px; background:var(--white); border:1px solid var(--line); box-shadow:0 18px 50px rgba(23,25,28,.15); }
.mobile-menu.is-open nav { display:grid; }
.mobile-menu nav a { padding:12px 10px; font-weight:700; }

.hero { min-height:760px; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:70px; }
.hero h1 { margin-bottom:27px; max-width:790px; }
.hero-lead { max-width:670px; font-size:1.16rem; }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.button { min-height:50px; padding:0 22px; display:inline-flex; align-items:center; justify-content:center; gap:9px; border-radius:999px; font-weight:800; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:var(--white); background:var(--orange); }
.button-primary:hover { background:var(--orange-dark); }
.button-secondary { border:1px solid var(--line); background:var(--white); }
.button-light { margin-top:25px; background:var(--white); color:var(--ink); }
.proof-line { display:flex; flex-wrap:wrap; gap:21px; margin-top:38px; color:#555a60; font-size:.84rem; font-weight:700; }
.proof-line span { display:flex; align-items:center; gap:6px; }
.proof-line svg { color:var(--orange); }
.hero-panel { position:relative; min-height:530px; overflow:hidden; border-radius:42px; background:var(--ink); box-shadow:0 34px 80px rgba(23,25,28,.24); }
.hero-panel::before { content:""; position:absolute; inset:0; opacity:.24; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:34px 34px; }
.hero-panel::after { content:"3D"; position:absolute; right:-18px; bottom:-50px; color:rgba(255,255,255,.04); font-size:15rem; font-weight:900; }
.panel-orbit { position:absolute; border:1px solid rgba(245,124,11,.42); border-radius:50%; }
.orbit-one { inset:66px -130px 35px 70px; }
.orbit-two { inset:130px -30px 105px 145px; }
.signal-card { position:absolute; z-index:2; display:flex; align-items:center; gap:11px; border:1px solid rgba(255,255,255,.12); color:white; background:rgba(39,42,46,.9); box-shadow:0 15px 35px rgba(0,0,0,.3); backdrop-filter:blur(10px); }
.signal-main { top:72px; left:48px; padding:18px; border-radius:20px; }
.signal-main small,.signal-main strong { display:block; }
.signal-main small { margin-bottom:3px; color:#aeb2b7; }
.signal-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; color:white; background:var(--orange); }
.signal-a,.signal-b,.signal-c { padding:13px 16px; border-radius:999px; font-size:.86rem; font-weight:750; }
.signal-a { top:215px; right:30px; }
.signal-b { left:38px; bottom:118px; }
.signal-c { right:26px; bottom:60px; }
.panel-status { position:absolute; z-index:2; left:45px; bottom:35px; color:#aaaeb2; font-size:.77rem; text-transform:uppercase; letter-spacing:.12em; display:flex; align-items:center; }
.panel-status i { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:#69d28b; box-shadow:0 0 0 6px rgba(105,210,139,.12); }

.dark-band { background:var(--ink); }
.capability-row { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:30px; overflow-x:auto; color:#b4b6b9; font-size:.82rem; font-weight:750; letter-spacing:.08em; white-space:nowrap; text-transform:uppercase; }
.capability-row span::before { content:"+"; margin-right:8px; color:var(--orange); }
.section-heading { max-width:760px; margin-bottom:54px; }
.split-heading { max-width:none; display:grid; grid-template-columns:1.25fr .75fr; align-items:end; gap:70px; }
.split-heading p:last-child { margin-bottom:8px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { position:relative; min-height:340px; padding:38px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); transition:color .25s,background .25s,transform .25s; }
.service-card:hover { z-index:2; color:white; background:var(--ink-soft); transform:translateY(-6px); }
.service-card:hover p,.service-card:hover .card-number { color:#bfc1c4; }
.card-number { position:absolute; right:22px; top:20px; color:#aaa9a5; font-size:.75rem; }
.service-icon { margin:58px 0 35px; color:var(--orange); }
.service-card p { font-size:.94rem; }
.service-card--more { padding-bottom:80px; }
.service-card-more { position:absolute; right:22px; bottom:18px; min-height:34px; padding:0 13px; gap:6px; font-size:.72rem; }
.text-link { display:inline-flex; align-items:center; gap:8px; margin-top:32px; color:var(--orange-dark); font-weight:800; }

.knowledge-section { padding-block:110px; color:white; background:var(--orange-dark); }
.knowledge-layout { display:grid; grid-template-columns:.92fr 1.08fr; gap:95px; align-items:center; }
.knowledge-layout h2 { max-width:600px; }
.knowledge-layout>div>p:not(.eyebrow) { max-width:590px; color:#ffe2cd; }
.eyebrow-light { color:#ffd1ad; }
.knowledge-stack { display:grid; gap:10px; }
.knowledge-stack article { min-height:78px; padding:14px 18px; display:grid; grid-template-columns:45px 1fr auto; align-items:center; gap:12px; border:1px solid var(--line); border-radius:18px; background:var(--white); color:var(--orange-dark); transition:box-shadow .25s ease,border-color .25s ease; }
.knowledge-stack article:hover { border-color:rgba(255,214,173,.9); box-shadow:0 0 0 2px rgba(255,214,173,.6),0 0 34px 8px rgba(255,178,110,.65); }
.knowledge-stack article span { color:var(--orange); font-size:.72rem; font-weight:800; }
.knowledge-stack article p { margin:0; color:var(--orange-dark); font-weight:700; line-height:1.4; }
.project-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.project-feature { overflow:hidden; border:1px solid var(--line); border-radius:28px; background:var(--white); }
.project-feature>img { width:100%; height:300px; object-fit:cover; }
.project-feature>div:last-child { padding:28px 30px 31px; }
.project-feature span,.portfolio-grid article span { color:var(--orange-dark); font-size:.72rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.project-feature h3 { margin:10px 0 8px; }
.project-feature p { margin-bottom:0; }
.before-after { display:grid; grid-template-columns:1fr 1fr; }
.before-after figure { position:relative; margin:0; overflow:hidden; }
.before-after img { width:100%; height:300px; object-fit:cover; }
.before-after figcaption { position:absolute; left:12px; top:12px; padding:5px 10px; border-radius:999px; background:rgba(23,25,28,.85); color:white; font-size:.72rem; font-weight:800; }
.closing-cta { margin-bottom:110px; padding:55px 60px; display:flex; align-items:center; justify-content:space-between; gap:35px; border-radius:30px; background:var(--cream); }
.closing-cta h2 { margin-bottom:0; font-size:clamp(2rem,4vw,3.6rem); }

.page-hero { padding-top:110px; padding-bottom:45px; }
.page-hero h1 { max-width:990px; margin-bottom:28px; font-size:clamp(3.4rem,7vw,6.4rem); }
.page-hero>p:last-child { max-width:740px; font-size:1.16rem; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding-top:45px; }
.detail-card { padding:42px; border:1px solid var(--line); border-radius:27px; background:white; }
.detail-card>svg { color:var(--orange); }
.detail-card h2 { margin:33px 0 8px; font-size:2rem; }
.detail-card ul { margin:26px 0 0; padding:22px 0 0; border-top:1px solid var(--line); list-style:none; }
.detail-card li { padding-block:7px; display:flex; align-items:center; gap:10px; color:#4c5055; }
.detail-card li svg { flex:0 0 auto; color:var(--orange); }
.compact-banner { margin-bottom:110px; padding:34px 38px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:25px; border-radius:24px; color:white; background:var(--ink); }
.compact-banner>svg { color:var(--orange); }
.compact-banner h2 { margin:0 0 5px; font-size:1.5rem; }
.compact-banner p { margin:0; color:#b8bbc0; }
.portfolio-grid { padding-top:45px; display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.portfolio-grid article { min-height:280px; padding:34px; display:flex; flex-direction:column; border:1px solid var(--line); background:white; }
.portfolio-grid article>svg { margin-bottom:45px; color:var(--orange); }
.portfolio-grid h2 { margin:12px 0; font-size:1.55rem; }
.portfolio-grid article p { margin-bottom:0; }
.project-card-action { margin-top:auto; padding-top:24px; display:inline-flex; align-items:center; gap:7px; color:var(--orange-dark); font-size:.9rem; font-weight:800; }
.project-card-action:hover { color:var(--orange); }
.photo-case { margin-bottom:110px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:60px; }
.photo-case .before-after { border-radius:26px; overflow:hidden; }
.photo-case .single-photo { border-radius:26px; overflow:hidden; }
.photo-case .single-photo img { width:100%; height:300px; object-fit:cover; }
.photo-case h2 { font-size:clamp(2.3rem,4vw,4rem); }
.product-hero { padding-bottom:70px; }
.back-link { margin-bottom:55px; display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:.9rem; font-weight:750; }
.back-link:hover { color:var(--orange-dark); }
.product-intro { padding:42px 48px; display:grid; grid-template-columns:180px 1fr; align-items:center; gap:48px; border-radius:30px; color:white; background:var(--ink); }
.product-intro h2 { margin-bottom:12px; font-size:clamp(2rem,4vw,3.5rem); }
.product-intro p:last-child { max-width:720px; margin-bottom:0; color:#c7c9cd; }
.product-mark { width:160px; aspect-ratio:1; display:grid; place-content:center; justify-items:center; border:1px solid rgba(255,255,255,.16); border-radius:50%; background:rgba(255,255,255,.05); }
.product-mark svg { margin-bottom:3px; color:var(--orange); }
.product-mark strong { font-size:2.4rem; line-height:1; }
.product-mark span { color:#b8bbc0; font-size:.73rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.producthunt-strip { margin-top:26px; padding:30px 34px; display:flex; align-items:center; justify-content:space-between; gap:35px; border:1px solid var(--line); border-radius:22px; background:white; }
.producthunt-strip .eyebrow { margin-bottom:9px; }
.producthunt-strip h2 { margin-bottom:5px; font-size:1.55rem; }
.producthunt-strip p:last-child { max-width:670px; margin:0; }
.producthunt-badge { flex:0 0 auto; padding:6px; display:block; border-radius:12px; transition:transform .2s,box-shadow .2s; }
.producthunt-badge:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(24,26,29,.1); }
.producthunt-badge img { width:250px; height:54px; }
.language-grid { padding-block:38px 95px; display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.language-card { padding:22px 23px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:17px; border:1px solid var(--line); border-radius:18px; background:white; transition:transform .2s,border-color .2s,box-shadow .2s; }
.language-card:hover { transform:translateY(-3px); border-color:#f0b087; box-shadow:0 14px 32px rgba(24,26,29,.08); }
.language-code { width:47px; height:47px; display:grid; place-items:center; border-radius:14px; color:var(--orange-dark); background:var(--cream); font-size:.74rem; font-weight:900; letter-spacing:.08em; }
.language-card div { display:grid; gap:3px; }
.language-card strong { font-size:1.05rem; }
.language-card div span { color:var(--muted); font-size:.9rem; }
.language-card>svg { color:var(--orange); }
.product-principles { margin-bottom:110px; display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.product-principles article { padding:31px; border-top:3px solid var(--orange); background:var(--cream); }
.product-principles svg { color:var(--orange-dark); }
.product-principles h2 { margin:25px 0 8px; font-size:1.35rem; }
.product-principles p { margin-bottom:0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.knowledge-hero>svg { margin-bottom:35px; color:var(--orange); }
.knowledge-cards { padding-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.knowledge-cards article { min-height:300px; padding:31px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:22px; background:white; }
.knowledge-cards article>div { display:flex; align-items:center; gap:10px; color:var(--orange-dark); }
.knowledge-cards article>div span { font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.knowledge-cards h2 { margin:40px 0 12px; font-size:1.5rem; }
.knowledge-cards small { margin-top:auto; color:#98999a; font-weight:700; }
.catalog-explainer { margin-bottom:110px; padding:54px; display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; border-radius:28px; color:white; background:var(--ink); }
.catalog-explainer h2 { margin:0; font-size:2.7rem; }
.catalog-explainer>p { margin:0; color:#b9bcc0; }
.about-layout { padding-top:40px; display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:center; }
.about-statement { padding:56px; border-radius:32px; background:var(--orange); transform:rotate(-1.6deg); }
.about-statement p { margin:0; color:white; font-size:clamp(1.7rem,3vw,2.7rem); font-weight:750; line-height:1.28; letter-spacing:-.03em; }
.about-layout h2 { font-size:2.8rem; }
.check-line { display:flex; align-items:flex-start; gap:12px; padding-block:12px; border-bottom:1px solid var(--line); }
.check-line svg { flex:0 0 auto; margin-top:3px; color:var(--orange); }
.contact-layout { padding-top:35px; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.contact-card,.contact-details { min-height:350px; padding:48px; border-radius:28px; }
.contact-card { color:white; background:var(--ink); }
.contact-card>svg { color:var(--orange); }
.contact-card h2,.contact-details h2 { margin:45px 0 10px; font-size:2.3rem; }
.contact-card p { color:#b9bbc0; }
.contact-card .button { margin-top:20px; }
.contact-details { border:1px solid var(--line); background:white; }
.contact-details>p:nth-of-type(2) { display:flex; align-items:center; gap:9px; color:var(--ink); font-weight:750; }
.contact-details svg { color:var(--orange); }
.contact-map { margin-top:24px; border-radius:18px; overflow:hidden; border:1px solid var(--line); }
.contact-map iframe { display:block; width:100%; }

.contact-form { display:grid; gap:16px; margin-top:24px; }
.contact-form label { display:grid; gap:7px; font-size:.86rem; font-weight:700; color:#c7c9cd; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea { padding:12px 14px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(255,255,255,.06); color:white; font:inherit; font-size:.95rem; resize:vertical; }
.contact-form input::placeholder,
.contact-form textarea::placeholder { color:#8a8d92; }
.contact-form input:focus,
.contact-form textarea:focus { outline:2px solid var(--orange); outline-offset:1px; }
.contact-form button { justify-self:start; border:0; cursor:pointer; }
.tdb-hp-field { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-notice { margin:18px 0 0; padding:12px 16px; display:flex; align-items:center; gap:9px; border-radius:12px; font-size:.9rem; font-weight:700; }
.contact-card p.form-notice--success { color:#fff; background:#24c875; }
.contact-card p.form-notice--error { color:#ffd9d0; background:rgba(245,124,11,.16); }
.form-notice--error a { text-decoration:underline; }

.site-footer { margin-top:110px; padding:72px 0 26px; color:white; background:#111315; }
.footer-grid { display:grid; grid-template-columns:1.5fr .75fr .9fr; gap:70px; }
.footer-brand img { width:260px; padding:6px; border-radius:8px; background:white; }
.footer-brand p { max-width:440px; color:#aeb1b5; }
.footer-grid>div:not(:first-child) { display:flex; flex-direction:column; gap:12px; }
.footer-grid strong { margin-bottom:8px; color:#777c81; font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; }
.footer-grid a,.footer-grid span { display:flex; align-items:center; gap:8px; color:#d1d3d5; font-size:.9rem; }
.footer-grid a:hover { color:var(--orange); }
.footer-bottom { margin-top:55px; padding-top:22px; display:flex; justify-content:space-between; border-top:1px solid #2c2f32; color:#777c81; font-size:.76rem; }

@media (max-width:980px) {
  .desktop-nav,.header-contact { display:none; }
  .mobile-menu { display:block; }
  .hero { min-height:auto; grid-template-columns:1fr; }
  .hero-panel { min-height:470px; }
  .split-heading,.knowledge-layout,.photo-case,.about-layout { grid-template-columns:1fr; gap:40px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .project-feature-grid,.detail-grid,.contact-layout,.product-principles { grid-template-columns:1fr; }
  .portfolio-grid,.knowledge-cards { grid-template-columns:1fr 1fr; }
}
@media (max-width:680px) {
  .shell { width:min(100% - 30px,1180px); }
  .section-space { padding-block:75px; }
  .header-inner { height:70px; }
  .brand { width:210px; }
  .hero { gap:42px; padding-top:72px; }
  .hero h1,.page-hero h1 { font-size:clamp(3rem,15vw,4.5rem); }
  .hero-panel { min-height:420px; border-radius:28px; }
  .signal-main { left:20px; top:35px; }
  .signal-a { top:170px; right:14px; }
  .signal-b { left:16px; bottom:110px; }
  .signal-c { right:13px; bottom:45px; }
  .panel-status { display:none; }
  .capability-row { justify-content:flex-start; }
  .service-grid,.portfolio-grid,.knowledge-cards { grid-template-columns:1fr; }
  .product-intro { padding:34px 28px; grid-template-columns:1fr; gap:28px; }
  .product-mark { width:130px; }
  .producthunt-strip { padding:27px 24px; align-items:flex-start; flex-direction:column; }
  .language-grid { grid-template-columns:1fr; }
  .service-card { min-height:300px; }
  .knowledge-section { padding-block:78px; }
  .project-feature>img,.before-after img { height:220px; }
  .closing-cta { margin-bottom:75px; padding:36px 28px; display:grid; }
  .compact-banner { grid-template-columns:1fr; }
  .catalog-explainer { padding:34px 27px; grid-template-columns:1fr; gap:25px; }
  .about-statement,.contact-card,.contact-details,.detail-card { padding:32px 27px; }
  .footer-grid { grid-template-columns:1fr; gap:38px; }
  .footer-bottom { display:grid; gap:8px; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
