/*
Theme Name: Blocksy Child - PrintForge
Template: blocksy
Version: 2.3.0
Description: Premium child theme for PrintForge.ro - custom design inspired by Apple, Bambu Lab, Nothing and DJI.
Author: PrintForge
*/

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
	--pf-orange:#F97316;
	--pf-orange-dark:#E2650A;
	--pf-black:#111111;
	--pf-white:#FFFFFF;
	--pf-gray:#F5F5F5;
	--pf-radius:24px;
}

body, button, input, select, textarea{
	font-family:'Manrope', sans-serif !important;
}
h1,h2,h3,h4,h5{ letter-spacing:-0.02em; }
.pf-home p, .pf-card p, .pf-why-item p, .pf-step p, .pf-test-quote, .pf-faq-item p{ line-height:1.7; }

:root{
	--theme-palette-color-1: var(--pf-orange);
	--theme-palette-color-2: var(--pf-orange-dark);
}

a{ transition: color .2s ease, background-color .2s ease; }
::selection{ background:var(--pf-orange); color:#fff; }

/* =====================================================================
   TOP BANNER - full viewport width, sits right under the header
   ===================================================================== */
.pf-top-banner{
	width:100vw;
	position:relative;
	left:50%;
	right:50%;
	margin-left:-50vw;
	margin-right:-50vw;
	overflow:hidden;
	line-height:0;
}
.pf-top-banner img{
	width:100%;
	height:auto;
	max-height:340px;
	object-fit:cover;
	display:block;
}
@media(max-width:600px){
	.pf-top-banner img{ max-height:180px; }
}


/* =====================================================================
   HEADER - sticky, transparent over hero, solid white after scroll
   ===================================================================== */
#header{
	position:sticky; top:0; z-index:999;
	background:#fff !important;
	box-shadow:0 1px 0 rgba(0,0,0,.06);
	transition:background-color .3s ease, box-shadow .3s ease;
}
#header .inner-header{
	min-height:80px; display:flex; align-items:center;
	transition:min-height .3s ease;
}
html.pf-scrolled #header .inner-header{ min-height:65px; }
html.pf-header-transparent #header{
	background:transparent !important;
	box-shadow:none;
}
html.pf-header-transparent #header,
html.pf-header-transparent #header a,
html.pf-header-transparent #header .ct-icon svg{
	color:#fff !important;
}
html.pf-header-transparent #header svg{ stroke:#fff !important; }
#header .item[data-id="menu"]{
	flex-grow:1 !important;
	display:flex;
	justify-content:center;
}
#header .item[data-id="menu"] ul.menu{
	display:flex;
	justify-content:center;
	gap:8px;
}
#header a{ font-weight:600; letter-spacing:.01em; }
#header .item[data-id="logo"] a,
#header .item[data-id="logo"] .ct-logo-text,
.ct-logo, .site-logo a{
	font-family:'Manrope', sans-serif !important;
	font-weight:800 !important;
	letter-spacing:-0.03em !important;
	color:var(--pf-black) !important;
}
html.pf-header-transparent #header .item[data-id="logo"] a,
html.pf-header-transparent #header .item[data-id="logo"] .ct-logo-text{
	color:#fff !important;
}
#header .item[data-id="logo"] img{
	max-height:38px !important;
	width:auto !important;
}
#header .current-menu-item > a,
#header a:hover{ color:var(--pf-orange) !important; }

/* Hide items we don't want in the main nav, whatever the underlying URL */
#header .item[data-id="menu"] a[href*="/blog"],
#header .item[data-id="menu"] a[href*="/checkout"],
#header .item[data-id="menu"] a[href*="/cart"],
#header .item[data-id="menu"] a[href*="/shop"],
#header .item[data-id="menu"] a[href*="/my-account"],
#header .item[data-id="menu"] a[href*="cere-oferta"]{
	display:none !important;
}

/* Hide Blocksy's default page-title banner on our custom-built pages */
.home .hero-section,
.pf-front .hero-section{ display:none !important; }

/* =====================================================================
   BUTTONS (global)
   ===================================================================== */
.button, button[type="submit"], .wp-block-button__link, .ct-button{
	border-radius:100px !important;
	font-weight:700 !important;
}

/* =====================================================================
   Shared page frame
   ===================================================================== */
.pf-home{ color:var(--pf-black); background:#fff; overflow-x:hidden; }
.pf-home *{ box-sizing:border-box; }
.pf-section{ padding:110px 6vw; max-width:1320px; margin:0 auto; }
.pf-kicker{ color:var(--pf-orange); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:13px; margin-bottom:14px; display:block; text-align:center; }
.pf-h2{ font-size:clamp(28px,3.2vw,42px); font-weight:800; text-align:center; margin:0 0 60px; color:var(--pf-black); }

.pf-btn{ display:inline-flex; align-items:center; justify-content:center; padding:17px 34px; border-radius:100px; font-weight:700; font-size:15px; text-decoration:none; transition:.25s ease; border:2px solid transparent; }
.pf-btn-primary{ background:var(--pf-orange); color:#fff; }
.pf-btn-primary:hover{ background:var(--pf-orange-dark); transform:translateY(-2px); box-shadow:0 12px 28px -8px #F9731688; color:#fff; }
.pf-btn-outline{ border-color:#ffffff44; color:#fff; }
.pf-btn-outline:hover{ border-color:var(--pf-orange); color:var(--pf-orange); }
.pf-btn-outline-dark{ border-color:#11111133; color:var(--pf-black); }
.pf-btn-outline-dark:hover{ border-color:var(--pf-orange); color:var(--pf-orange); }

/* =====================================================================
   HERO
   ===================================================================== */
.pf-hero{ display:flex; align-items:center; gap:60px; padding:150px 6vw 110px; background:var(--pf-black); color:#fff; position:relative; overflow:hidden; margin-top:-1px; }
.pf-hero-left{ flex:1; min-width:320px; z-index:2; }
.pf-hero-right{ flex:1; min-width:320px; display:flex; justify-content:center; align-items:center; z-index:2; }
.pf-eyebrow{ display:inline-block; color:var(--pf-orange); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:13px; margin-bottom:20px; }
.pf-hero h1{ font-size:clamp(36px,5vw,64px); font-weight:800; line-height:1.08; margin:0 0 26px; }
.pf-hero p{ font-size:19px; line-height:1.65; color:#cfcfcf; max-width:540px; margin:0 0 40px; }
.pf-btns{ display:flex; gap:16px; flex-wrap:wrap; }

.pf-hero-visual{ position:relative; width:100%; max-width:520px; border-radius:28px; overflow:hidden; aspect-ratio:1/1; background:linear-gradient(160deg,#1c1c1c,#0a0a0a); border:1px solid #F9731633; box-shadow:0 50px 100px -30px #F9731655; }
.pf-hero-visual::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 25%,#F9731666 0%,transparent 60%); }
.pf-hero-visual img{ width:100%; height:100%; object-fit:cover; display:block; position:relative; z-index:1; mix-blend-mode:normal; }
.pf-printer-frame-mini{ position:absolute; inset:10%; border:2px solid var(--pf-orange); border-radius:22px; }
.pf-printer-bed-mini{ position:absolute; left:16%; right:16%; bottom:18%; height:6px; background:var(--pf-orange); border-radius:4px; box-shadow:0 0 20px 4px #F97316aa; }
.pf-printer-head-mini{ position:absolute; top:20%; width:22px; height:22px; background:var(--pf-orange); border-radius:6px; box-shadow:0 0 16px 6px #F9731699; animation:pf-move 4s ease-in-out infinite; }
@keyframes pf-move{ 0%,100%{ left:18%; } 50%{ left:64%; } }


   own heading color rule was winning the cascade and rendering the H1
   in dark navy on our black hero, making it unreadable.
   ===================================================================== */
/* =====================================================================
   FIX: force white headings on every dark custom section - Blocksy's
   own heading color rule was winning the cascade and rendering the H1
   in dark navy on our black hero, making it unreadable.
   ===================================================================== */
.pf-hero h1, .pf-hero-content h1,
.pf-page-hero h1,
.pf-cta h2{
	color:#fff !important;
}

/* =====================================================================
   HERO SPLIT - left content + trust badges, right large visual
   ===================================================================== */
.pf-hero-split{
	align-items:center;
	gap:clamp(40px,6vw,90px);
	padding:clamp(110px,16vh,150px) 6vw clamp(60px,8vh,100px);
	min-height:calc(100vh - 80px);
}
.pf-hero-split .pf-hero-content{ flex:1 1 460px; max-width:560px; }
.pf-hero-split h1{
	margin:0 0 clamp(14px,2vh,22px);
	font-size:clamp(32px,3.6vw,54px);
	line-height:1.08;
}
.pf-hero-split p{ margin:0 0 clamp(24px,3vh,32px); font-size:clamp(15px,1.4vw,18px); }

.pf-hero-badges{
	list-style:none; margin:34px 0 0; padding:20px 0 0; display:flex; flex-wrap:wrap; gap:20px 28px;
	border-top:1px solid #ffffff1a;
}
.pf-hero-badges li{
	display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600; color:#d8d8d8;
}
.pf-hero-badges svg{ width:18px; height:18px; stroke:var(--pf-orange); flex:none; }

.pf-hero-visual-wrap{ flex:1 1 480px; max-width:620px; width:100%; }
.pf-showcase{
	position:relative;
	width:100%;
	aspect-ratio:4/5;
	border-radius:32px;
	overflow:hidden;
	background:linear-gradient(155deg,#1b1b1b 0%,#0a0a0a 60%);
	border:1px solid #ffffff14;
	box-shadow:0 60px 120px -40px rgba(0,0,0,.55);
}
.pf-showcase-img{ width:100%; height:100%; object-fit:cover; display:block; }
.pf-showcase-grid{
	position:absolute; inset:0;
	background-image:
		linear-gradient(#ffffff0a 1px, transparent 1px),
		linear-gradient(90deg,#ffffff0a 1px, transparent 1px);
	background-size:40px 40px;
	mask-image:radial-gradient(ellipse 70% 70% at 50% 40%, #000 40%, transparent 90%);
}
.pf-showcase-glow{
	position:absolute; inset:0;
	background:
		radial-gradient(circle at 25% 20%, #F9731655 0%, transparent 45%),
		radial-gradient(circle at 80% 80%, #F9731633 0%, transparent 50%);
}

/* Centerpiece fallback - abstract stacked "print layers" object, used
   only when no real product photo has been set via the Customizer */
.pf-showcase-object{
	position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
	width:70%; max-width:240px; aspect-ratio:1;
}
.pf-showcase-object-layer{
	position:absolute; left:50%; border-radius:14px;
	border:1.5px solid #F9731688;
	background:linear-gradient(160deg,#2a1608cc,#0d0d0dcc);
	box-shadow:0 20px 40px -12px #F9731633;
	width:100%; height:22%;
}
.pf-showcase-object-layer:nth-child(1){ bottom:0; transform:translateX(-50%) scale(1); }
.pf-showcase-object-layer:nth-child(2){ bottom:20%; transform:translateX(-50%) scale(.82); opacity:.9; }
.pf-showcase-object-layer:nth-child(3){ bottom:40%; transform:translateX(-50%) scale(.64); opacity:.8; }
.pf-showcase-object-layer:nth-child(4){ bottom:60%; transform:translateX(-50%) scale(.46); opacity:.7; }
.pf-showcase-object-glow{
	position:absolute; left:50%; bottom:-6%; width:110%; height:14%;
	transform:translateX(-50%);
	background:radial-gradient(ellipse, #F97316aa 0%, transparent 70%);
	filter:blur(6px);
}

@media(max-width:900px){
	.pf-hero-split{ flex-direction:column; text-align:center; min-height:0; padding-top:130px; }
	.pf-hero-split .pf-hero-content{ max-width:100%; }
	.pf-hero-badges{ justify-content:center; }
	.pf-hero-visual-wrap{ max-width:420px; }
}


/* =====================================================================
   TRUST BAR
   ===================================================================== */

/* =====================================================================
   CARDS - services / categories
   ===================================================================== */
.pf-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.pf-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.pf-grid-5{ display:grid; grid-template-columns:repeat(5,1fr); gap:22px; }

.pf-card{ background:var(--pf-gray); border-radius:var(--pf-radius); padding:44px 32px; transition:.35s ease; border:1px solid #ececec; }
.pf-card:hover{ transform:translateY(-8px); box-shadow:0 24px 48px -20px rgba(0,0,0,.16); background:#fff; border-color:#F9731633; }
.pf-card-icon{ width:56px; height:56px; border-radius:16px; background:var(--pf-black); display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
.pf-card-icon svg{ width:26px; height:26px; stroke:var(--pf-orange); }
.pf-card h3{ font-size:20px; font-weight:700; margin:0 0 12px; }
.pf-card p{ font-size:15px; color:#555; line-height:1.6; margin:0; }

.pf-cat-card{
	position:relative; border-radius:var(--pf-radius); overflow:hidden; background:var(--pf-black);
	background-size:cover; background-position:center; min-height:280px;
	display:flex; align-items:flex-end; padding:26px; color:#fff; text-decoration:none;
	transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease; border:1px solid #232323;
}
.pf-cat-card::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 70% 20%,#F9731655,transparent 60%); opacity:.8; transition:.35s ease; }
.pf-cat-card:hover{ transform:translateY(-8px) scale(1.015); box-shadow:0 30px 60px -24px rgba(0,0,0,.4); }
.pf-cat-card:hover::before{ opacity:1; background:radial-gradient(circle at 70% 20%,#F97316aa,transparent 65%); }
.pf-cat-card span{ position:relative; z-index:2; font-weight:800; font-size:18px; }

/* =====================================================================
   STEPS (how it works)
   ===================================================================== */
.pf-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.pf-step{ position:relative; padding:36px 26px; border-radius:var(--pf-radius); background:#fff; border:1px solid #eee; text-align:left; }
.pf-step-num{ font-size:44px; font-weight:800; color:#F9731633; margin-bottom:10px; }
.pf-step h4{ font-size:17px; font-weight:700; margin:0 0 8px; }
.pf-step p{ font-size:14px; color:#666; line-height:1.55; margin:0; }

/* =====================================================================
   WHY US
   ===================================================================== */
.pf-why{ background:var(--pf-gray); }
.pf-why-item{ display:flex; align-items:flex-start; gap:16px; padding:26px 8px; }
.pf-why-check{ flex:none; width:34px; height:34px; border-radius:50%; background:var(--pf-orange); display:flex; align-items:center; justify-content:center; }
.pf-why-check svg{ width:18px; height:18px; stroke:#fff; }
.pf-why-item h4{ font-size:16.5px; font-weight:700; margin:0 0 4px; }
.pf-why-item p{ font-size:14px; color:#666; margin:0; line-height:1.5; }

/* =====================================================================
   PORTFOLIO GALLERY + LIGHTBOX
   ===================================================================== */
.pf-gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:18px; }
.pf-gallery-item{ border-radius:18px; background:linear-gradient(145deg,#1a1a1a,#0c0c0c); position:relative; overflow:hidden; border:1px solid #F9731622; cursor:pointer; display:block; }
.pf-gallery-item::after{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 30%,#F9731655,transparent 60%); transition:.3s ease; }
.pf-gallery-item:hover::after{ background:radial-gradient(circle at 30% 30%,#F97316aa,transparent 65%); }
.pf-gallery-item img{ width:100%; height:100%; object-fit:cover; position:relative; z-index:1; }
.pf-gallery-item:nth-child(3n+1){ grid-row:span 2; }
.pf-gallery-cat{ display:inline-block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--pf-orange); background:#00000099; padding:6px 12px; border-radius:100px; position:absolute; bottom:14px; left:14px; z-index:2; }

.pf-lightbox-overlay{ position:fixed; inset:0; background:rgba(10,10,10,.94); display:none; align-items:center; justify-content:center; z-index:9999; padding:40px; }
.pf-lightbox-overlay.is-open{ display:flex; }
.pf-lightbox-img{ max-width:90vw; max-height:85vh; border-radius:16px; box-shadow:0 40px 100px rgba(0,0,0,.5); }
.pf-lightbox-close{ position:absolute; top:24px; right:32px; background:none; border:none; color:#fff; font-size:40px; line-height:1; cursor:pointer; }

/* =====================================================================
   TESTIMONIALS
   ===================================================================== */
.pf-testimonials{ background:transparent; }

/* =====================================================================
   Section rhythm - alternating background for visual pacing, an
   asymmetric "title left / link right" header for priority sections,
   and a subtle on-scroll reveal so the page doesn't feel static.
   ===================================================================== */
.pf-bg-alt{ background:var(--pf-gray); }
.pf-section-head{
	display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
	margin-bottom:44px; flex-wrap:wrap;
}
.pf-section-head .pf-kicker-left{ text-align:left; margin-bottom:10px; }
.pf-section-head .pf-h2-left{ text-align:left; margin:0; }
.pf-link-arrow{
	display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14.5px;
	color:var(--pf-black); text-decoration:none; white-space:nowrap; padding-bottom:6px;
}
.pf-link-arrow svg{ width:17px; height:17px; stroke:currentColor; transition:transform .25s ease; }
.pf-link-arrow:hover{ color:var(--pf-orange); }
.pf-link-arrow:hover svg{ transform:translateX(4px); }

.pf-reveal{
	opacity:0; transform:translateY(28px);
	transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
.pf-reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
	.pf-reveal{ opacity:1; transform:none; transition:none; }
}


.pf-test-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.pf-test-card{ background:var(--pf-gray); border-radius:var(--pf-radius); padding:34px 30px; border:1px solid #ececec; }
.pf-test-stars{ color:var(--pf-orange); font-size:16px; margin-bottom:14px; letter-spacing:2px; }
.pf-test-quote{ font-size:15.5px; line-height:1.6; color:#333; margin:0 0 20px; }
.pf-test-author{ display:flex; align-items:center; gap:12px; }
.pf-test-avatar{ width:42px; height:42px; border-radius:50%; background:var(--pf-black); display:flex; align-items:center; justify-content:center; color:var(--pf-orange); font-weight:800; font-size:15px; }
.pf-test-name{ font-weight:700; font-size:14.5px; }
.pf-test-role{ font-size:12.5px; color:#777; }

/* =====================================================================
   CTA
   ===================================================================== */
.pf-cta{ background:var(--pf-black); padding:100px 6vw; text-align:center; color:#fff; }
.pf-cta h2{ font-size:clamp(28px,3.6vw,44px); font-weight:800; margin:0 0 36px; }

/* =====================================================================
   WooCommerce products grid on homepage
   ===================================================================== */
.pf-products ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:26px; list-style:none; padding:0; margin:0; }
.pf-products ul.products li.product{ background:var(--pf-gray); border-radius:20px; padding:22px; text-align:center; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; overflow:hidden; }
.pf-products ul.products li.product:hover{ box-shadow:0 24px 48px -20px rgba(0,0,0,.2); transform:translateY(-6px); }
.pf-products ul.products li.product img{ border-radius:14px; aspect-ratio:1; object-fit:cover; width:100% !important; height:auto; transition:transform .5s ease; }
.pf-products ul.products li.product:hover img{ transform:scale(1.05); }
.pf-products ul.products li.product .woocommerce-loop-product__title{ font-weight:700; font-size:15.5px; margin-top:14px; }

/* =====================================================================
   WooCommerce - global restyle (shop, single product, cart, checkout)
   ===================================================================== */
.woocommerce ul.products li.product{ border-radius:20px !important; overflow:hidden; }
.woocommerce ul.products li.product .price{ color:var(--pf-orange) !important; font-weight:800 !important; }
.woocommerce span.onsale{ background:var(--pf-orange) !important; border-radius:100px !important; font-weight:800 !important; }
.woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit,
.woocommerce-page a.button, .woocommerce-page button.button{
	background:var(--pf-orange) !important; color:#fff !important; border-radius:100px !important;
	font-weight:700 !important; border:none !important; padding:14px 28px !important;
	transition:.25s ease !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce #respond input#submit:hover{
	background:var(--pf-orange-dark) !important; transform:translateY(-2px);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{ border-radius:100px !important; }
.woocommerce div.product form.cart .button{ border-radius:100px !important; }
.woocommerce table.shop_table{ border-radius:16px !important; overflow:hidden; border-color:#eee !important; }
.woocommerce-checkout #payment, .woocommerce-cart-form{ border-radius:16px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea{
	border-radius:12px !important; border-color:#e2e2e2 !important;
}
.woocommerce div.product div.images{ border-radius:20px; overflow:hidden; }

/* Sticky add-to-cart on single product (basic) */
@media(min-width:900px){
	.single-product .summary.entry-summary{ position:sticky; top:110px; align-self:flex-start; }
}

/* =====================================================================
   Contact / Upload Model forms
   ===================================================================== */
.pf-form{ background:var(--pf-gray); border-radius:var(--pf-radius); padding:40px; display:grid; gap:18px; max-width:640px; }
.pf-form label{ font-weight:700; font-size:14px; display:block; margin-bottom:6px; }
.pf-form input[type="text"], .pf-form input[type="email"], .pf-form input[type="tel"],
.pf-form textarea, .pf-form input[type="file"]{
	width:100%; padding:14px 16px; border-radius:12px; border:1px solid #e2e2e2; font-family:inherit; font-size:15px; background:#fff;
}
.pf-form textarea{ min-height:130px; resize:vertical; }
.pf-form .pf-btn{ justify-self:start; border:none; cursor:pointer; }
.pf-form-note{ font-size:13.5px; color:#777; }
.pf-form-status{ border-radius:12px; padding:14px 18px; font-weight:600; font-size:14.5px; }
.pf-form-status.success{ background:#e9f9ee; color:#1a7a3d; }
.pf-form-status.error{ background:#fdeaea; color:#b23434; }

.pf-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start; }
.pf-map-placeholder{ border-radius:var(--pf-radius); background:linear-gradient(145deg,#1a1a1a,#0c0c0c); min-height:340px; display:flex; align-items:center; justify-content:center; color:#999; font-weight:600; border:1px solid #F9731622; }
.pf-contact-info{ display:grid; gap:16px; margin-bottom:30px; }
.pf-contact-info div{ font-size:15px; }
.pf-contact-info strong{ display:block; color:var(--pf-black); }

/* =====================================================================
   Inner page hero
   ===================================================================== */
.pf-page-hero{ background:var(--pf-black); color:#fff; padding:130px 6vw 70px; text-align:center; }
.pf-page-hero h1{ font-size:clamp(32px,4.5vw,52px); font-weight:800; margin:0 0 14px; }
.pf-page-hero p{ color:#cfcfcf; font-size:17px; max-width:640px; margin:0 auto; }

/* =====================================================================
   Product tabs (delivery / FAQ) + related products wrapper
   ===================================================================== */
.pf-product-tab-content{ max-width:760px; }
.pf-faq-list{ display:grid; gap:22px; }
.pf-faq-item h4{ font-size:16px; font-weight:700; margin:0 0 6px; }
.pf-faq-item p{ font-size:14.5px; color:#555; line-height:1.6; margin:0; }
.pf-related-wrap{ margin-top:70px; }
.pf-related-wrap .pf-kicker{ text-align:left; }
.pf-related-wrap ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none; padding:0; }
@media(max-width:900px){ .pf-related-wrap ul.products{ grid-template-columns:repeat(2,1fr) !important; } }

/* Hero image mode (when a real photo is set via Customizer) */
.pf-hero-visual img{ border-radius:28px; }

/* Gallery tiles with a real photo vs. empty placeholder */
.pf-gallery-item.has-photo{ cursor:zoom-in; }
.pf-gallery-item:not(.has-photo){ cursor:default; }
.pf-gallery-item:not(.has-photo)::after{ opacity:.5; }

/* =====================================================================
   404 hero variant (single column, no right visual)
   ===================================================================== */
.pf-hero-404{ min-height:70vh; align-items:center; justify-content:center; }
.pf-hero-404 .pf-hero-left{ margin:0 auto; text-align:center; }
.pf-hero-404 .pf-btns{ justify-content:center; }

/* =====================================================================
   GLOBAL POLISH - remove every remaining "stock WordPress" tell
   ===================================================================== */

/* Custom focus ring everywhere (kills the default blue browser outline) */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, .pf-btn:focus-visible{
	outline:2px solid var(--pf-orange) !important;
	outline-offset:2px;
}

/* Thin brand-tinted scrollbar (webkit) */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:#fff; }
::-webkit-scrollbar-thumb{ background:#d8d8d8; border-radius:100px; }
::-webkit-scrollbar-thumb:hover{ background:#b8b8b8; }
html{ scrollbar-color:#d8d8d8 #fff; }

/* Native form controls, everywhere (checkout, cart, my-account, search) -
   not just inside .pf-form - restyled so nothing looks like default
   browser/WP-admin chrome. */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="password"], input[type="number"], input[type="search"],
textarea, select{
	font-family:'Manrope', sans-serif;
	border-radius:12px !important;
	border:1px solid #e2e2e2 !important;
	padding:13px 16px !important;
	background:#fff !important;
	transition:border-color .2s ease, box-shadow .2s ease;
}
input:focus, textarea:focus, select:focus{
	border-color:var(--pf-orange) !important;
	box-shadow:0 0 0 3px #F9731622;
}
select{
	appearance:none; -webkit-appearance:none; -moz-appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
	padding-right:40px !important;
}
input[type="checkbox"], input[type="radio"]{ accent-color:var(--pf-orange); width:17px; height:17px; }
/* Custom "browse" button on native file inputs */
input[type="file"]::file-selector-button{
	font-family:inherit; font-weight:700; border:none; border-radius:100px;
	padding:9px 18px; margin-right:14px; background:var(--pf-black); color:#fff; cursor:pointer;
	transition:.2s ease;
}
input[type="file"]::file-selector-button:hover{ background:var(--pf-orange); }

/* Kill the generic Blocksy/WordPress page-title & breadcrumb banner look
   sitewide - repaint it in the same premium dark language as our custom
   .pf-page-hero, instead of hiding it (avoids layout/spacing surprises
   on Woo archive, product, cart, checkout, search & 404 templates). */
.hero-section{ background:var(--pf-black) !important; border:none !important; }
.hero-section *{ color:#fff !important; }
.hero-section h1, .hero-section .hero-section-title{
	font-weight:800 !important; letter-spacing:-0.02em !important;
}
.hero-section a{ color:#cfcfcf !important; }
.hero-section a:hover{ color:var(--pf-orange) !important; }
.woocommerce-breadcrumb, .ct-breadcrumbs{
	font-size:13px !important; font-weight:600 !important; letter-spacing:.02em;
	opacity:.85;
}
.woocommerce-breadcrumb a, .ct-breadcrumbs a{ color:inherit !important; }

/* Shop toolbar (result count + sort-by dropdown) */
.woocommerce-result-count{ font-size:14px; color:#666; margin:0; }
.woocommerce-ordering select{ min-width:200px; font-weight:600; }
.woocommerce > .row, .woocommerce-notices-wrapper + *{ margin-top:0; }

/* Star ratings on-brand (not the default WP/Woo yellow) */
.star-rating, .comment-form-rating .stars a{ color:var(--pf-orange) !important; }
.star-rating span::before{ color:var(--pf-orange) !important; }
.woocommerce-product-rating{ display:flex; align-items:center; gap:8px; }

/* Quantity stepper (progressively enhanced by qty-stepper.js) */
.quantity{ display:inline-flex; align-items:stretch; border:1px solid #e2e2e2; border-radius:100px; overflow:hidden; background:#fff; }
.quantity input.qty{
	border:none !important; border-radius:0 !important; text-align:center;
	width:52px !important; padding:11px 4px !important; box-shadow:none !important;
	-moz-appearance:textfield;
}
.quantity input.qty::-webkit-inner-spin-button, .quantity input.qty::-webkit-outer-spin-button{
	-webkit-appearance:none; margin:0;
}
.pf-qty-btn{
	border:none; background:transparent; width:38px; font-size:18px; font-weight:700;
	color:var(--pf-black); cursor:pointer; transition:.2s ease;
}
.pf-qty-btn:hover{ background:var(--pf-gray); color:var(--pf-orange); }

/* WooCommerce notices (added-to-cart, errors, info) - flat brand pills
   instead of the default green/red boxed banners */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews{
	border-top:none !important; border-radius:14px !important; padding:16px 22px !important;
	background:var(--pf-gray) !important; color:var(--pf-black) !important;
	font-weight:600 !important; box-shadow:none !important;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before{ color:var(--pf-orange) !important; }
.woocommerce-message .button, .woocommerce-error .button{
	background:var(--pf-black) !important; border-radius:100px !important;
}

/* Pagination - pill / circular numbers instead of default underlined links */
.page-numbers, nav.woocommerce-pagination a, nav.woocommerce-pagination span{
	display:inline-flex !important; align-items:center; justify-content:center;
	min-width:40px; height:40px; border-radius:100px !important; margin:0 3px;
	font-weight:700 !important; border:1px solid #eee !important; background:#fff !important;
	color:var(--pf-black) !important; text-decoration:none !important;
}
.page-numbers.current, nav.woocommerce-pagination .current{
	background:var(--pf-black) !important; color:#fff !important; border-color:var(--pf-black) !important;
}
.page-numbers:hover, nav.woocommerce-pagination a:hover{
	border-color:var(--pf-orange) !important; color:var(--pf-orange) !important;
}

/* Sidebar / shop widgets */
.widget-title, .widget h2, .widget h3{
	font-size:15px !important; font-weight:800 !important; text-transform:uppercase;
	letter-spacing:.06em; margin-bottom:18px !important;
}
.widget ul{ list-style:none !important; margin:0 !important; padding:0 !important; }
.widget ul li{ padding:9px 0 !important; border-bottom:1px solid #f0f0f0; }
.widget_price_filter .price_slider_amount .button{ border-radius:100px !important; }
.widget_price_filter .ui-slider .ui-slider-range{ background:var(--pf-orange) !important; }
.widget_price_filter .ui-slider .ui-slider-handle{ background:var(--pf-black) !important; border:none !important; }

/* Payment method list on checkout - custom card look instead of a bare
   radio list */
ul.payment_methods{ list-style:none !important; padding:0 !important; border-radius:var(--pf-radius) !important; overflow:hidden; border:1px solid #eee !important; }
ul.payment_methods li{ padding:16px 20px !important; border-bottom:1px solid #eee; }
ul.payment_methods li:last-child{ border-bottom:none; }

/* Coupon code box on cart/checkout */
.woocommerce-form-coupon{ border-radius:var(--pf-radius) !important; padding:26px !important; background:var(--pf-gray) !important; border:none !important; }

/* Tables (cart, order review) - clean, borderless, generous spacing */
.woocommerce table.shop_table th{ font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:#777; border-bottom:2px solid #eee !important; }
.woocommerce table.shop_table td{ border-top:1px solid #f2f2f2 !important; }
.woocommerce table.shop_table{ border:1px solid #eee !important; }


/* =====================================================================
   Responsive
   ===================================================================== */
@media(max-width:900px){
	.pf-hero{ flex-direction:column; text-align:center; padding-top:120px; }
	.pf-hero p{ margin-left:auto; margin-right:auto; }
	.pf-btns{ justify-content:center; }
	.pf-grid-3{ grid-template-columns:repeat(2,1fr); }
	.pf-grid-4{ grid-template-columns:repeat(2,1fr); }
	.pf-grid-5{ grid-template-columns:repeat(2,1fr); }
	.pf-steps{ grid-template-columns:repeat(2,1fr); }
	.pf-gallery{ grid-template-columns:repeat(2,1fr); }
	.pf-test-grid{ grid-template-columns:1fr; }
	.pf-products ul.products{ grid-template-columns:repeat(2,1fr) !important; }
	.pf-contact-grid{ grid-template-columns:1fr; }
	#header .item[data-id="menu"] ul.menu{ flex-wrap:wrap; }
	.pf-section-head{ flex-direction:column; align-items:flex-start; gap:14px; }
}
@media(max-width:520px){
	.pf-grid-3, .pf-grid-4, .pf-grid-5{ grid-template-columns:1fr; }
	.pf-steps{ grid-template-columns:1fr; }
	.pf-gallery{ grid-template-columns:1fr; }
	.pf-gallery-item{ grid-row:auto !important; }
	.pf-products ul.products{ grid-template-columns:1fr !important; }
	.pf-section{ padding:70px 6vw; }
	.pf-cta, .pf-hero{ padding-left:6vw; padding-right:6vw; }
	.pf-form{ padding:26px; }
}
