/*
Theme Name: PortoPrint
Theme URI: https://portoprint.nl
Author: PortoPrint
Description: Lichtgewicht WooCommerce theme voor PortoPrint - Print & Design.
Version: 1.5.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: portoprint
*/
:root{
  --pp-black:#050505;
  --pp-ink:#0d0d0d;
  --pp-panel:#141414;
  --pp-lime:#c6ff00;
  --pp-white:#fff;
  --pp-muted:#b8b8b8;
  --pp-line:rgba(255,255,255,.12);
  --pp-radius:8px;
  --pp-max:1180px;
  --pp-shadow:0 34px 90px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Poppins,Inter,Arial,sans-serif;background:var(--pp-black);color:var(--pp-white);line-height:1.65;font-size:15px}
body.nav-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.container{width:min(var(--pp-max),calc(100% - 48px));margin:auto}
.lime{color:var(--pp-lime)}

.site-header{position:sticky;top:0;z-index:20;background:rgba(0,0,0,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.07)}
.header-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:11px;font-weight:900;font-size:22px;line-height:1;letter-spacing:0;flex:0 0 auto}
.brand img{display:block;object-fit:contain}
.brand img:not(.custom-logo):not(.theme-logo){width:45px;height:45px}
.site-header .brand.brand-header img.custom-logo,
.site-header .brand.brand-header img.theme-logo{
  width:230px!important;
  max-width:230px!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain;
}
.site-footer .brand.brand-footer img.custom-logo,
.site-footer .brand.brand-footer img.theme-logo{
  width:260px!important;
  max-width:260px!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain;
}
.brand .print{color:var(--pp-lime)}
.brand small{display:block;font-size:7px;letter-spacing:.34em;font-weight:700;color:#fff;margin-top:4px}
.main-nav{display:flex;align-items:center;gap:28px;font-size:13px;font-weight:700;color:#f2f2f2}
.main-nav a:hover{color:var(--pp-lime)}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--pp-radius);padding:13px 24px;font-weight:900;font-size:13px;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease,background .2s ease;min-height:46px}
.btn-lime{background:var(--pp-lime);color:#050505}
.btn-lime:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(198,255,0,.18)}
.btn-outline{border-color:rgba(255,255,255,.45);color:#fff;background:transparent}
.btn-outline:hover{border-color:var(--pp-lime);color:var(--pp-lime)}
.btn-black{background:#050505;color:#fff;border-color:#050505}
.dark-outline{border-color:#1b1b1b;color:#111}
.dark-outline:hover{background:#111;color:#fff;border-color:#111}
.mobile-toggle{display:none;width:44px;height:44px;border:0;background:transparent;padding:0;place-items:center;gap:5px}
.mobile-toggle span{display:block;width:22px;height:2px;background:#fff;border-radius:2px}

.hero{position:relative;overflow:hidden;background:#000;padding:96px 0 82px;min-height:620px;display:flex;align-items:center}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 44%,rgba(198,255,0,.16),transparent 24%),linear-gradient(100deg,#000 0%,#050505 48%,#151515 100%);opacity:.95}
.hero:after{content:"";position:absolute;inset:auto 0 0;height:38%;background:linear-gradient(0deg,rgba(0,0,0,.92),transparent);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.88fr) minmax(380px,1.12fr);align-items:center;gap:64px}
.hero-copy{max-width:560px}
.hero h1{font-size:clamp(46px,5.4vw,78px);line-height:1.04;margin:0 0 24px;letter-spacing:0;font-weight:900}
.lead{font-size:16px;color:#e8e8e8;max-width:540px;margin:0}
.hero-actions{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-visual{position:relative;min-height:370px;display:grid;place-items:center}
.hero-visual:before{content:"";position:absolute;width:82%;aspect-ratio:1.8;background:rgba(255,255,255,.055);filter:blur(34px);transform:rotate(-12deg)}
.hero-visual img{position:relative;border-radius:10px;display:block;box-shadow:var(--pp-shadow);transform:perspective(900px) rotateY(-12deg) rotateX(6deg);max-height:440px;object-fit:cover}

.section{padding:82px 0}
.section-white{background:#fff;color:#111}
.section-dark{background:#050505;color:#fff}
.eyebrow{color:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;margin-bottom:10px}
.section-dark .eyebrow,.hero .eyebrow{color:#fff}
.section-title{font-size:clamp(28px,3vw,42px);line-height:1.12;margin:0 0 16px;letter-spacing:0;font-weight:900}
.section-intro{color:var(--pp-muted);max-width:620px;margin:0}
.section-white .section-intro{color:#555}
.why-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:74px;align-items:center}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.feature{display:flex;gap:16px;align-items:flex-start}
.feature-icon{width:58px;height:58px;display:grid;place-items:center;background:var(--pp-lime);color:#050505;border-radius:50%;font-weight:900;font-size:23px;flex:0 0 auto;box-shadow:0 12px 24px rgba(198,255,0,.28)}
.feature h3,.service-card h3{margin:0 0 6px;font-size:17px;line-height:1.2}
.feature p,.service-card p{margin:0;color:#666;font-size:13px}
.section-head,.portfolio-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}

.services{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:34px}
.service-card{background:transparent;border:0;border-radius:0;overflow:visible;transition:transform .2s ease}
.service-card:hover{transform:translateY(-5px)}
.service-thumb{aspect-ratio:1.65;background:linear-gradient(135deg,#1d1d1d,#070707);border:1px solid var(--pp-line);border-radius:6px;display:grid;place-items:center;overflow:hidden;margin-bottom:14px}
.service-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.05)}
.service-thumb span{font-size:42px;color:var(--pp-lime);text-shadow:0 0 24px rgba(198,255,0,.28)}
.service-body{padding:0}
.service-card p{color:#c9c9c9}
.center-action{text-align:center;margin:38px 0 0}

.portfolio-head{align-items:end;margin-bottom:28px}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.portfolio-item{position:relative;border-radius:4px;overflow:hidden;background:linear-gradient(135deg,#1f1f1f,#080808);aspect-ratio:1.55;display:grid;place-items:center;color:var(--pp-lime);font-weight:900;font-size:21px;border:1px solid #e4e4e4;text-align:center}
.portfolio-item img{width:100%;height:100%;object-fit:cover;display:block}
.portfolio-item span{position:relative;z-index:1}
.portfolio-item:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 24%,rgba(198,255,0,.2),transparent 25%);opacity:.75}

.cta-strip{background:var(--pp-lime);color:#050505;padding:28px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.cta-inner>div{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:center}
.cta-icon{grid-row:1 / span 2;width:44px;height:44px;display:grid;place-items:center;font-size:28px}
.cta-inner h2{margin:0;font-size:25px;line-height:1.15;letter-spacing:0;font-weight:900}
.cta-inner p{margin:3px 0 0;font-size:13px}

.site-footer{background:#050505;border-top:1px solid rgba(255,255,255,.08);padding:54px 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.35fr;gap:32px}
.footer-grid h4{margin:0 0 14px;color:#fff;font-size:14px}
.footer-grid p,.footer-grid a{display:block;color:#b8b8b8;font-size:13px;margin:0 0 8px}
.footer-grid a:hover{color:var(--pp-lime)}

.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.single_add_to_cart_button{background:var(--pp-lime)!important;color:#050505!important;border-radius:8px!important;font-weight:900!important}
.woocommerce ul.products li.product{background:#fff;border-radius:8px;padding:16px;color:#111}
.page-content{background:#fff;color:#111;padding:70px 0;min-height:50vh}
.page-content a{color:#111;text-decoration:underline;text-decoration-color:var(--pp-lime);text-decoration-thickness:3px;text-underline-offset:3px}

.editable-front-page{background:#fff;color:#111}
.editable-front-page .wp-block-group{margin-top:0;margin-bottom:0}
.editable-front-page mark,.editable-front-page .has-vivid-green-cyan-color{color:var(--pp-lime)!important;background:transparent!important}
.pp-hero-section{position:relative;overflow:hidden;background:#000;color:#fff;padding:96px 24px 82px;min-height:620px;display:flex;align-items:center}
.pp-hero-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 44%,rgba(198,255,0,.16),transparent 24%),linear-gradient(100deg,#000 0%,#050505 48%,#151515 100%);opacity:.95}
.pp-hero-section>*{position:relative;z-index:1;width:min(var(--pp-max),100%);margin-left:auto;margin-right:auto}
.pp-hero-section h1{font-size:clamp(46px,5.4vw,78px);line-height:1.04;margin:0 0 24px;font-weight:900}
.pp-hero-section .lead{font-size:16px;color:#e8e8e8;max-width:540px;margin:0}
.pp-hero-grid{gap:64px}
.pp-hero-visual figure{margin:0}
.pp-hero-visual img{border-radius:10px;display:block;box-shadow:var(--pp-shadow);transform:perspective(900px) rotateY(-12deg) rotateX(6deg);max-height:440px;object-fit:cover}
.wp-block-buttons.hero-actions{display:flex;gap:14px;margin-top:34px}
.wp-block-button .wp-block-button__link{border-radius:var(--pp-radius);padding:13px 24px;font-weight:900;font-size:13px;min-height:46px;display:inline-flex;align-items:center;justify-content:center}
.wp-block-button.btn-lime .wp-block-button__link{background:var(--pp-lime);color:#050505}
.wp-block-button.btn-outline .wp-block-button__link{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.wp-block-button.btn-black .wp-block-button__link{background:#050505;color:#fff}
.pp-section{padding:82px 24px}
.pp-section>*{width:min(var(--pp-max),100%);margin-left:auto;margin-right:auto}
.pp-white{background:#fff;color:#111}
.pp-dark{background:#050505;color:#fff}
.pp-section h1,.pp-section h2{font-size:clamp(28px,3vw,42px);line-height:1.12;margin:0 0 16px;font-weight:900}
.pp-section .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;margin:0 0 10px}
.pp-section .section-intro{color:#555;max-width:620px;margin:0 0 32px}
.pp-dark .section-intro{color:var(--pp-muted)}
.pp-section .why-grid{gap:74px}
.pp-section .features{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pp-section .features h3{position:relative;margin:0;padding-top:78px;font-size:17px}
.pp-section .features h3:before{content:"";position:absolute;top:0;left:0;width:58px;height:58px;border-radius:50%;background:var(--pp-lime);box-shadow:0 12px 24px rgba(198,255,0,.28)}
.pp-section .features p{margin:0 0 22px;color:#666;font-size:13px}
.pp-card-grid{gap:18px;margin-top:34px}
.pp-card-grid .wp-block-column{background:linear-gradient(135deg,#1d1d1d,#070707);border:1px solid var(--pp-line);border-radius:6px;min-height:180px;padding:24px;color:#fff}
.pp-card-grid h3{margin:0 0 8px;color:#fff;font-size:18px}
.pp-card-grid p{margin:0;color:#c9c9c9;font-size:13px}
.pp-services-split{position:relative;overflow:hidden}
.pp-services-split:before{content:"";position:absolute;right:-170px;top:-170px;width:520px;height:520px;border-radius:50%;background:rgba(198,255,0,.08);pointer-events:none}
.pp-services-split:after{content:"";position:absolute;left:-180px;bottom:-220px;width:560px;height:560px;border-radius:50%;background:rgba(255,255,255,.035);pointer-events:none}
.pp-services-inner{position:relative;z-index:1;width:min(var(--pp-max),100%);margin:0 auto}
.pp-services-split h2{max-width:760px}
.pp-services-split mark{color:var(--pp-lime)!important;background:transparent!important}
.pp-service-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:38px 0 22px}
.pp-service-route{position:relative;overflow:hidden;min-height:310px;background:linear-gradient(145deg,#191919,#080808);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:34px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 28px 70px rgba(0,0,0,.32)}
.pp-service-route:before{content:"";position:absolute;inset:auto -80px -110px auto;width:290px;height:290px;border-radius:50%;background:rgba(198,255,0,.1)}
.pp-service-route-3d{background:radial-gradient(circle at 76% 18%,rgba(198,255,0,.18),transparent 30%),linear-gradient(145deg,#181818,#070707)}
.pp-route-label{position:absolute;top:24px;left:28px;color:var(--pp-lime);font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:900}
.pp-service-route h3{position:relative;margin:0 0 10px;color:#fff;font-size:clamp(25px,3vw,38px);line-height:1.05;font-weight:900}
.pp-service-route p{position:relative;margin:0 0 24px;color:#d7d7d7;max-width:470px}
.pp-service-route a{position:relative;width:max-content;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.42);border-radius:8px;color:#fff;font-size:13px;font-weight:900;padding:12px 18px}
.pp-service-route a:hover{background:var(--pp-lime);border-color:var(--pp-lime);color:#050505}
.pp-service-mini-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:18px}
.pp-service-mini-grid div{background:#101010;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:18px 16px;min-height:118px}
.pp-service-mini-grid strong{display:block;color:#fff;font-size:15px;line-height:1.15;margin-bottom:8px}
.pp-service-mini-grid span{display:block;color:#aaa;font-size:12px;line-height:1.45}
.pp-gallery{margin-top:28px}
.pp-gallery img{border-radius:4px;border:1px solid #e4e4e4;background:#111}
.pp-cta{background:var(--pp-lime);color:#050505;padding:28px 24px}
.pp-cta>*{width:min(var(--pp-max),100%);margin-left:auto;margin-right:auto}
.pp-cta h2{margin:0;font-size:25px;line-height:1.15;font-weight:900}
.pp-cta p{margin:3px 0 18px;font-size:13px}

@media(max-width:980px){
  .header-cta{display:none}
  .mobile-toggle{display:grid}
  .main-nav{position:fixed;inset:78px 0 auto 0;background:#050505;border-bottom:1px solid var(--pp-line);display:grid;gap:0;padding:14px 24px 24px;transform:translateY(-130%);transition:transform .22s ease;box-shadow:0 24px 44px rgba(0,0,0,.45)}
  .nav-open .main-nav{transform:translateY(0)}
  .main-nav a{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:16px}
  .hero{min-height:auto;padding:74px 0}
  .hero-grid,.why-grid,.footer-grid{grid-template-columns:1fr}
  .pp-hero-grid,.pp-section .why-grid{grid-template-columns:1fr!important}
  .hero-visual{min-height:260px}
  .features,.pp-section .features{grid-template-columns:1fr}
  .services{grid-template-columns:repeat(2,1fr)}
  .portfolio-grid{grid-template-columns:1fr 1fr}
  .pp-service-routes{grid-template-columns:1fr}
  .pp-service-mini-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cta-inner{align-items:flex-start}
}
@media(max-width:620px){
  .container{width:min(100% - 28px,var(--pp-max))}
  .header-inner{height:70px}
  .main-nav{inset:70px 0 auto 0}
  .brand{font-size:19px}
  .brand img:not(.custom-logo):not(.theme-logo){width:38px;height:38px}
  .site-header .brand.brand-header img.custom-logo,
  .site-header .brand.brand-header img.theme-logo{width:170px!important;max-width:170px!important}
  .site-footer .brand.brand-footer img.custom-logo,
  .site-footer .brand.brand-footer img.theme-logo{width:200px!important;max-width:200px!important}
  .hero{padding:58px 0 46px}
  .hero-grid{gap:28px}
  .hero h1{font-size:42px}
  .pp-hero-section h1{font-size:42px}
  .lead{font-size:14px}
  .btn,.wp-block-button,.wp-block-button .wp-block-button__link{width:100%}
  .services,.portfolio-grid{grid-template-columns:1fr}
  .section{padding:58px 0}
  .pp-section,.pp-hero-section{padding:58px 14px}
  .pp-card-grid{display:block}
  .pp-card-grid .wp-block-column{margin-bottom:14px}
  .pp-service-route{min-height:260px;padding:28px}
  .pp-service-mini-grid{grid-template-columns:1fr}
  .portfolio-head,.section-head,.cta-inner{display:block}
  .portfolio-head .btn{margin-top:18px}
  .cta-inner>div{grid-template-columns:1fr}
  .cta-icon{display:none}
  .cta-inner .btn{margin-top:18px}
}
