/*
Theme Name: J&J Trading en Service
Theme URI: https://jjtrading-service.nl
Author: Own Your IT
Author URI: https://ownyour-it.com
Description: Maatwerk WordPress-thema voor J&J Trading en Service — in- & verkoop, inruil, onderhoud en APK. Eén pagina, brandkleur en contactgegevens aanpasbaar via Weergave → Aanpassen.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jj-trading-service
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --jj-blue:#034F81;            /* exact logoblauw */
  --jj-blue-bright:#2f86d6;     /* helderder, voor knoppen/accenten op donkere vlakken */
  --jj-blue-600:color-mix(in srgb, var(--jj-blue), #000 14%);
  --jj-blue-700:color-mix(in srgb, var(--jj-blue), #001b30 36%);
  --jj-tint:color-mix(in srgb, var(--jj-blue) 8%, #fff);
  --jj-tint-2:color-mix(in srgb, var(--jj-blue) 15%, #fff);
  --jj-ink:#0E2236;
  --jj-ink-2:#0A1A2B;
  --jj-gray:#5A6675;
  --jj-line:#E4E9F0;
  --shadow-xs:0 1px 2px rgba(20,30,48,.06);
  --shadow-sm:0 1px 3px rgba(20,30,48,.08), 0 1px 2px rgba(20,30,48,.04);
  --shadow-md:0 4px 12px rgba(20,30,48,.10), 0 2px 4px rgba(20,30,48,.05);
  --shadow-lg:0 12px 32px rgba(20,30,48,.14), 0 4px 10px rgba(20,30,48,.06);
  --ease-out:cubic-bezier(.22,1,.36,1);
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:#1f2a36;
  background:#fff;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.5;
}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:color-mix(in srgb, var(--jj-blue) 26%, #fff)}
svg.lucide{display:inline-block;vertical-align:middle}
.container{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:8px;top:8px;z-index:200;background:#fff;padding:10px 14px;border-radius:8px;box-shadow:var(--shadow-md)}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{position:sticky;top:0;z-index:50;background:rgba(9,22,38,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-inner{min-height:74px;padding-top:13px;padding-bottom:13px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none}
.brand svg{display:block;flex:none}
.brand img.brand-logo{display:block;flex:none;height:42px;width:auto}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-name{font-weight:800;font-size:16px;letter-spacing:.01em;color:var(--jj-ink)}
.brand-name span{font-weight:500;color:var(--jj-gray)}
.brand-sub{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--jj-blue);font-weight:700;margin-top:2px}
.nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:flex-end}
.nav a.nav-link{text-decoration:none;color:#c4d2e0;font-weight:600;font-size:14.5px}
.nav a.nav-link:hover{color:#fff}
.nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:22px;flex-wrap:wrap}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;font-weight:600;border:none;cursor:pointer;font-family:inherit;border-radius:11px;transition:background .18s var(--ease-out),transform .18s var(--ease-out)}
.btn--phone{gap:8px;background:var(--jj-blue-bright);color:#fff;font-size:14.5px;padding:11px 18px;border-radius:10px;box-shadow:var(--shadow-sm)}
.btn--phone:hover{background:color-mix(in srgb, var(--jj-blue-bright), #000 12%)}
.btn--primary{background:var(--jj-blue-bright);color:#fff;font-size:15.5px;padding:15px 24px;box-shadow:0 8px 24px color-mix(in srgb, var(--jj-blue-bright) 42%, transparent)}
.btn--primary:hover{background:color-mix(in srgb, var(--jj-blue-bright), #000 12%)}
.btn--ghost{background:rgba(255,255,255,.07);color:#fff;font-size:15.5px;padding:15px 22px;border:1px solid rgba(255,255,255,.22)}
.btn--ghost:hover{background:rgba(255,255,255,.14)}
.btn--submit{background:var(--jj-blue);color:#fff;font-size:15.5px;padding:15px 24px;box-shadow:var(--shadow-sm);width:100%}
.btn--submit:hover{background:var(--jj-blue-600)}

.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:transparent;color:#fff;cursor:pointer}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 50% -10%, #16314c 0%, var(--jj-ink) 46%, var(--jj-ink-2) 100%);color:#fff}
.hero-glow{position:absolute;top:8%;left:74%;width:680px;height:680px;border-radius:50%;background:radial-gradient(circle, color-mix(in srgb, var(--jj-blue-bright) 55%, transparent) 0%, transparent 62%);filter:blur(14px);animation:jjGlow 7s ease-in-out infinite;pointer-events:none}
@keyframes jjGlow{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:.82;transform:translate(-50%,-50%) scale(1.06)}}
.hero-inner{position:relative;padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(64px,7vw,108px);display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:clamp(40px,5vw,72px);align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--jj-blue)}
.eyebrow--hero{color:#9fd0fb}
.eyebrow--hero::before{content:"";width:26px;height:1.5px;background:var(--jj-blue-bright);display:inline-block}
.hero-title{font-size:clamp(38px,5.4vw,64px);font-weight:300;line-height:1.04;letter-spacing:-.02em;margin:20px 0 0;color:#fff}
.hero-title strong{font-weight:600;color:#7cc0fb}
.hero-sub{font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:#c4d2e0;max-width:480px;margin:24px 0 0;font-weight:400}
.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:34px}
.hero-reassure{display:flex;flex-wrap:wrap;gap:22px;margin-top:34px;font-size:14px;font-weight:500}
.hero-reassure span.item{display:inline-flex;align-items:center;gap:8px;color:#9fd0fb}
.hero-reassure span.item span{color:#aebccb}
.hero-media{position:relative}
.hero-media .glow{position:absolute;inset:-16px;border-radius:26px;background:radial-gradient(circle at 60% 40%, color-mix(in srgb, var(--jj-blue) 38%, transparent), transparent 70%);filter:blur(8px)}
.media-slot{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:clamp(280px,34vw,420px);border-radius:20px;background:linear-gradient(135deg,#1b3954,#16314c);box-shadow:0 30px 70px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.1);color:#7e94ab;font-size:14px;font-weight:500;background-size:cover;background-position:center;overflow:hidden}

/* ============================================================
   SECTIONS
   ============================================================ */
.section{padding-top:clamp(72px,8vw,112px);padding-bottom:clamp(72px,8vw,112px)}
.section--tint{background:var(--jj-tint);border-top:1px solid var(--jj-line)}
.section--ink{position:relative;overflow:hidden;background:var(--jj-ink);color:#fff}
.section--ink .why-glow{position:absolute;bottom:-30%;left:-8%;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle, color-mix(in srgb, var(--jj-blue) 34%, transparent), transparent 64%);pointer-events:none}
.section-head{max-width:600px;position:relative}
.h2{font-size:clamp(30px,4vw,46px);font-weight:300;line-height:1.08;letter-spacing:-.015em;color:var(--jj-ink);margin:14px 0 0}
.h2 strong{font-weight:600}
.section--ink .h2{color:#fff}
.section--ink .h2 strong{color:#7cc0fb}
.lead{font-size:17px;line-height:1.6;color:var(--jj-gray);margin:18px 0 0}

/* services */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:22px;margin-top:48px}
.card{background:#fff;border:1px solid var(--jj-line);border-radius:18px;padding:30px 28px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card-icon{width:54px;height:54px;border-radius:14px;background:var(--jj-tint);display:flex;align-items:center;justify-content:center;color:var(--jj-blue)}
.card-title{font-size:20px;font-weight:700;color:var(--jj-ink);margin:20px 0 0;letter-spacing:-.01em}
.card-body{font-size:15px;line-height:1.6;color:var(--jj-gray);margin:10px 0 0}

/* why / usp */
.usp-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:46px}
.usp{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:26px 24px}
.usp-icon{width:48px;height:48px;border-radius:12px;background:color-mix(in srgb, var(--jj-blue) 26%, transparent);display:flex;align-items:center;justify-content:center;color:#9fd0fb}
.usp h3{font-size:17px;font-weight:700;color:#fff;margin:18px 0 0}
.usp p{font-size:14px;line-height:1.55;color:#aebccb;margin:8px 0 0}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(40px,5vw,64px)}
.contact-sub{font-size:17px;line-height:1.6;color:var(--jj-gray);margin:18px 0 0;max-width:420px}
.contact-methods{display:flex;flex-direction:column;gap:14px;margin-top:32px}
.contact-method{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--jj-line);border-radius:14px;padding:18px 20px;text-decoration:none;box-shadow:var(--shadow-xs)}
a.contact-method:hover{border-color:var(--jj-blue)}
.contact-method .ic{width:46px;height:46px;flex:none;border-radius:11px;background:var(--jj-tint);display:flex;align-items:center;justify-content:center;color:var(--jj-blue)}
.contact-method .meta{display:flex;flex-direction:column}
.contact-method .label{font-size:12.5px;color:var(--jj-gray);font-weight:600}
.contact-method .value{font-size:16.5px;font-weight:700;color:var(--jj-ink)}

.form-card{background:#fff;border:1px solid var(--jj-line);border-radius:20px;padding:clamp(28px,3vw,40px);box-shadow:var(--shadow-md)}
.form-card h3{font-size:21px;font-weight:700;color:var(--jj-ink);margin:0;letter-spacing:-.01em}
.form-card p.intro{font-size:14.5px;color:var(--jj-gray);margin:8px 0 0;line-height:1.55}
.jj-form{display:flex;flex-direction:column;gap:16px;margin-top:24px}
.field{display:flex;flex-direction:column;gap:7px}
.field span{font-size:13px;font-weight:600;color:var(--jj-ink)}
.field input,.field textarea{font-family:inherit;font-size:15px;padding:13px 15px;border:1px solid var(--jj-line);border-radius:11px;background:#fbfcfe;color:var(--jj-ink);outline:none;width:100%}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--jj-blue);box-shadow:0 0 0 3px color-mix(in srgb, var(--jj-blue) 18%, transparent)}
.form-note{font-size:12px;color:var(--jj-gray);margin:0;text-align:center;line-height:1.5}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--jj-ink-2);color:#fff}
.footer-inner{padding-top:clamp(48px,5vw,64px);padding-bottom:clamp(28px,3vw,36px);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px}
.footer-brand-row{display:flex;align-items:center;gap:13px}
.footer-logo{height:42px;width:auto;display:block}
.footer-brand-row span.fb{font-weight:800;font-size:17px;color:#fff}
.footer-brand-row span.fb span{font-weight:500;color:#9fb0c2}
.footer-tag{font-size:14px;line-height:1.6;color:#9fb0c2;margin:18px 0 0;max-width:300px}
.footer-col h4{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7cc0fb;margin:0}
.footer-col .links{display:flex;flex-direction:column;gap:11px;margin-top:18px}
.footer-col .links a{color:#c4d2e0;text-decoration:none;font-size:14.5px}
.footer-col .links a:hover{color:#fff}
.footer-base{border-top:1px solid rgba(255,255,255,.1)}
.footer-base .inner{padding-top:20px;padding-bottom:20px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;color:#7a8a9c;font-size:12.5px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:880px){
  .nav-toggle{display:inline-flex}
  .nav{position:absolute;top:100%;left:0;right:0;background:rgba(9,22,38,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg);flex-direction:column;align-items:stretch;gap:0;padding:8px 0;display:none}
  .nav.is-open{display:flex}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .nav a.nav-link{padding:14px 24px}
  .nav .btn--phone{margin:10px 24px 6px;justify-content:center}
  .nav-inner{position:relative}
}
