/*
Theme Name: Reggestad ICT
Theme URI: https://reggestad.nl
Author: Reggestad ICT Specialisten
Description: Fris redesign-thema voor Reggestad ICT Specialisten. Navy & oranje huisstijl met Space Grotesk. Hero-tekst, knoppen en contactgegevens zijn aanpasbaar via Weergave > Aanpassen (Customizer). Menu's via Weergave > Menu's.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: reggestad
*/

:root{
    --navy:#16316c;        /* Reggestad navy */
    --blue:#2f6fb5;
    --sky:#3aa0e3;
    --orange:#d87933;      /* Reggestad oranje */
    --coral:#f0683f;
    --mint:#1fb89a;
    --violet:#7b61d8;
    --amber:#f2b134;
    --ink:#15233f;
    --paper:#f4f7fc;
    --paper-2:#ffffff;
    --line:#e1e8f2;
    --muted:#5d6b85;
    --r:22px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Space Grotesk",system-ui,sans-serif; color:var(--ink); background:var(--paper);
    line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden}
  h1,h2,h3{font-family:"Space Grotesk",sans-serif; line-height:1.06; letter-spacing:-.02em; font-weight:700}
  .eyebrow{font-size:.74rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
    color:var(--orange); display:inline-flex; align-items:center; gap:.55rem}
  .eyebrow::before{content:""; width:24px; height:2px; border-radius:2px;
    background:linear-gradient(90deg,var(--orange),var(--coral))}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px}
  a{color:inherit; text-decoration:none}
  .grad{color:var(--coral)}
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .grad{background:linear-gradient(100deg,var(--orange),var(--coral) 70%,var(--amber));
      -webkit-background-clip:text; background-clip:text;
      -webkit-text-fill-color:transparent; color:transparent}
  }
  .btn{display:inline-flex; align-items:center; gap:.55rem; font-family:inherit; font-weight:600;
    font-size:.96rem; padding:.9rem 1.5rem; border-radius:100px; border:2px solid transparent;
    cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease}
  .btn-orange{background:linear-gradient(100deg,var(--orange),var(--coral)); color:#fff}
  .btn-orange:hover{transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(240,104,63,.65)}
  .btn-navy{background:var(--navy); color:#fff}
  .btn-navy:hover{transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(22,49,108,.6)}
  .btn-ghost{border-color:var(--navy); color:var(--navy)}
  .btn-ghost:hover{background:var(--navy); color:#fff; transform:translateY(-2px)}
  .arrow{transition:transform .2s ease}
  .btn:hover .arrow{transform:translateX(3px)}

  /* logo */
  .brand{display:flex; align-items:center}
  .brand img{height:46px; width:auto; display:block}
  footer .brand img{height:42px}

  /* header */
  header{position:sticky; top:0; z-index:50; background:rgba(244,247,252,.82);
    backdrop-filter:blur(14px); border-bottom:1px solid var(--line)}
  .nav{display:flex; align-items:center; justify-content:space-between; height:78px}
  .menu{display:flex; gap:1.7rem; font-size:.93rem; font-weight:500}
  .menu a{color:var(--muted); transition:color .15s}
  .menu a:hover{color:var(--navy)}
  .nav-cta{display:flex; align-items:center; gap:1rem}
  .phone{font-size:.9rem; font-weight:600; color:var(--navy)}
  .burger{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer}
  .burger span{width:24px; height:2px; background:var(--ink)}

  /* hero */
  .hero{position:relative; padding:92px 0 100px; overflow:hidden}
  .blob{position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; z-index:0; pointer-events:none}
  .blob.b1{width:420px; height:420px; background:var(--sky); top:-120px; right:-60px}
  .blob.b2{width:360px; height:360px; background:var(--orange); bottom:-140px; left:-80px; opacity:.38}
  .blob.b3{width:300px; height:300px; background:var(--violet); top:120px; left:38%; opacity:.25}
  .hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.12fr .88fr; gap:48px; align-items:center}
  .hero h1{font-size:clamp(2.7rem,6.2vw,4.7rem); margin:18px 0 22px; letter-spacing:-.035em}
  .hero p.lead{font-size:1.18rem; color:var(--muted); max-width:30ch}
  .hero .cta-row{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap}
  .stats{display:flex; gap:34px; margin-top:48px; padding-top:30px; border-top:1px solid var(--line)}
  .stat .n{font-weight:700; font-size:1.8rem; color:var(--navy)}
  .stat .l{font-size:.82rem; color:var(--muted)}
  .hero-art{position:relative; aspect-ratio:1/1; border-radius:30px;
    background:linear-gradient(150deg,var(--navy),var(--blue) 60%,var(--sky));
    overflow:hidden; box-shadow:0 34px 70px -34px rgba(22,49,108,.65)}
  .hero-art svg{position:absolute; inset:0; width:100%; height:100%}
  .badge{position:absolute; left:22px; bottom:22px; right:22px; background:rgba(255,255,255,.16);
    backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.28); border-radius:16px;
    padding:16px 18px; color:#fff; display:flex; align-items:center; gap:14px}
  .badge .dot{width:11px; height:11px; border-radius:50%; background:var(--amber);
    box-shadow:0 0 0 4px rgba(242,177,52,.32)}
  .badge .t b{display:block; font-weight:600}
  .badge .t span{opacity:.82; font-size:.8rem}

  /* river */
  .river{display:block; width:100%; height:60px}
  .river path{fill:none; stroke:url(#rg); stroke-width:3; stroke-dasharray:10 14;
    animation:flow 6s linear infinite}
  @keyframes flow{to{stroke-dashoffset:-48}}

  section{position:relative}
  .pad{padding:82px 0}
  .head{max-width:44ch; margin-bottom:42px}
  .head h2{font-size:clamp(2rem,4.2vw,3rem); margin:14px 0 10px}
  .head p{color:var(--muted); font-size:1.05rem}

  /* tinted section */
  .tint{background:linear-gradient(180deg,#eef3fb,var(--paper))}

  /* branches */
  .branch-band{background:linear-gradient(135deg,var(--navy),#1f4a9e); color:#fff; position:relative; overflow:hidden}
  .branch-band .blob{opacity:.4}
  .branch-band .eyebrow{color:var(--amber)}
  .branch-band .eyebrow::before{background:var(--amber)}
  .branch-band .head h2{color:#fff}
  .branch-band .head p{color:rgba(255,255,255,.75)}
  .branch-band .wrap{position:relative; z-index:1}
  .chips{display:flex; flex-wrap:wrap; gap:12px}
  .chip{display:flex; align-items:center; gap:.6rem; padding:.85rem 1.3rem; border-radius:100px;
    border:1px solid rgba(255,255,255,.24); font-weight:500; transition:all .18s ease; cursor:pointer}
  .chip:hover{background:linear-gradient(100deg,var(--orange),var(--coral)); border-color:transparent;
    color:#fff; transform:translateY(-2px)}
  .chip i{width:8px; height:8px; border-radius:50%; background:var(--amber)}

  /* services */
  .grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
  .card{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r);
    padding:26px 22px 24px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s;
    position:relative; overflow:hidden}
  .card::after{content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
    background:var(--c); transform:scaleX(0); transform-origin:left; transition:transform .25s ease}
  .card:hover{transform:translateY(-5px); box-shadow:0 22px 46px -24px rgba(22,49,108,.22);
    border-color:transparent}
  .card:hover::after{transform:scaleX(1)}
  .card .ico{width:46px; height:46px; border-radius:13px; font-size:1.3rem;
    background:var(--cl); color:var(--c);
    display:grid; place-items:center; margin-bottom:16px}
  .card h3{font-size:1.12rem; font-weight:600; margin-bottom:7px}
  .card p{font-size:.9rem; color:var(--muted)}

  /* values */
  .values{display:grid; grid-template-columns:repeat(4,1fr); gap:30px}
  .value .num{font-weight:700; font-size:1.1rem; color:var(--c)}
  .value h3{font-size:1.2rem; margin:8px 0 8px; font-weight:600}
  .value p{font-size:.92rem; color:var(--muted)}

  /* testimonials */
  .quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
  .quote{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r); padding:28px;
    position:relative; overflow:hidden}
  .quote::before{content:""; position:absolute; top:0; left:0; width:100%; height:5px; background:var(--c)}
  .quote .mark{font-size:2.6rem; font-weight:700; color:var(--c); line-height:.7; height:1.1rem}
  .quote p{font-size:.98rem; margin:18px 0 22px}
  .quote .who{display:flex; align-items:center; gap:12px}
  .quote .who .av{width:40px; height:40px; border-radius:50%; background:var(--c); flex:0 0 auto}
  .quote .who b{font-size:.9rem; font-weight:600; display:block}
  .quote .who span{font-size:.8rem; color:var(--muted)}

  /* CTA */
  .cta-band{position:relative; overflow:hidden; border-radius:30px; padding:60px 54px; text-align:center;
    background:linear-gradient(120deg,var(--orange),var(--coral) 55%,var(--violet))}
  .cta-band .blob{opacity:.35}
  .cta-band > *{position:relative; z-index:1}
  .cta-band h2{font-size:clamp(1.9rem,4.2vw,2.9rem); color:#fff; margin-bottom:14px}
  .cta-band p{color:rgba(255,255,255,.95); max-width:46ch; margin:0 auto 28px; font-weight:500}
  .cta-band .btn{background:#fff; color:var(--coral)}
  .cta-band .btn:hover{transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(0,0,0,.4)}

  /* footer */
  footer{background:var(--navy); color:rgba(255,255,255,.82); padding:64px 0 30px; margin-top:84px}
  .fgrid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:30px}
  footer h4{font-weight:600; color:#fff; font-size:.95rem; margin-bottom:14px}
  footer .brand{margin-bottom:16px}
  footer ul{list-style:none}
  footer li{margin-bottom:9px; font-size:.9rem}
  footer a:hover{color:#fff}
  footer .contact{font-size:.92rem; line-height:1.9}
  .fbottom{margin-top:46px; padding-top:22px; border-top:1px solid rgba(255,255,255,.16);
    display:flex; justify-content:space-between; font-size:.8rem; color:rgba(255,255,255,.6); flex-wrap:wrap; gap:10px}

  .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease}
  .reveal.in{opacity:1; transform:none}

  @media(max-width:920px){
    .phone{display:none}
    .burger{display:flex}
    .menu{display:none; position:absolute; top:78px; left:0; right:0; flex-direction:column;
      background:var(--paper-2); padding:18px 28px; gap:1.1rem; border-bottom:1px solid var(--line);
      box-shadow:0 18px 30px -20px rgba(22,49,108,.3)}
    .menu.open{display:flex}
    .hero-grid{grid-template-columns:1fr; gap:36px}
    .hero-art{max-width:420px}
    .grid{grid-template-columns:repeat(2,1fr)}
    .values{grid-template-columns:repeat(2,1fr)}
    .quotes{grid-template-columns:1fr}
  }
  @media(max-width:560px){
    .grid,.values{grid-template-columns:1fr}
    .stats{flex-wrap:wrap; gap:22px}
    .cta-band{padding:38px 26px}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important; transition:none!important}
    .reveal{opacity:1; transform:none}
  }
