/*
Theme Name: AppVenture Studio
Theme URI: https://appventure.co.uk/
Author: APP-VENTURE-UK LTD
Author URI: https://appventure.co.uk/
Description: Clean, minimal engineering-studio WordPress theme for AppVenture. Lightweight, fast, and conversion-focused.
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: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: appventure-studio
Tags: one-column, custom-logo, custom-menu, featured-images, block-styles
*/

/* =========================================================
   Design tokens
   ========================================================= */
:root{
  --av-primary: #0AA388;
  --av-ink: #0F172A;
  --av-sub: #475569;
  --av-bg: #F8FAFC;
  --av-card: #ffffff;
  --av-border: rgba(15,23,42,.10);
  --av-shadow: 0 10px 25px rgba(0,0,0,.06);
  --av-radius: 14px;
  --av-radius-sm: 10px;
  --av-max: 1120px;
  --av-pad: 20px;
}

*{ box-sizing:border-box; }
html, body{ height:100%; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: var(--av-bg);
  color: var(--av-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a{ color: inherit; }
img{ max-width:100%; height:auto; }
.wp-site-blocks{ min-height:100%; }

.av-container{
  width: 100%;
  max-width: var(--av-max);
  margin: 0 auto;
  padding: 0 var(--av-pad);
}

.av-section{
  padding: 70px 0;
}

.av-kicker{
  color: var(--av-primary);
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: 12px;
}

.av-h1{

margin:16px 0 18px;

font-size: clamp(40px, 5vw, 64px);

font-weight:780;

line-height:1.04;

letter-spacing:-0.035em;

max-width:900px;

}

.av-h2{
  margin: 0 0 10px;
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 720;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.av-h3{
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.av-sub{

margin:0;

color:var(--av-sub);

font-size:19px;

line-height:1.75;

max-width:720px;

}

.av-grid{
  display: grid;
  gap: 18px;
}

.av-grid-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.av-grid-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 960px){
  .av-grid-3, .av-grid-2{ grid-template-columns: 1fr; }
  .av-section{ padding: 64px 0; }
}

.av-card{
  background: var(--av-card);
  border: 1px solid var(--av-border);
  border-radius: var(--av-radius);
  box-shadow: var(--av-shadow);
  padding: 26px;
}

.av-pill{

display:inline-flex;
align-items:center;
gap:10px;

padding:8px 14px;

border-radius:999px;

border:1px solid rgba(15,23,42,.08);

background:rgba(255,255,255,.85);

box-shadow:0 4px 14px rgba(0,0,0,.06);

backdrop-filter: blur(8px);

margin-bottom:16px;

}

.av-btns{
display:flex;
gap:14px;
flex-wrap:wrap;
margin-top:26px;
margin-bottom:24px;
}

.av-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none;
  font-weight: 650;
  padding: 14px 20px;
  border-radius: var(--av-radius-sm);
  border: 1px solid transparent;
  transition: transform .06s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
}

html, body {
overflow-x: hidden;
}

.av-btn:active{ transform: translateY(1px); }

.av-btn-primary{
background:#0AA388;
color:white;

padding:12px 22px;

font-weight:600;
font-size:14px;

border-radius:12px;

box-shadow:
0 6px 18px rgba(10,163,136,.25),
inset 0 -2px 0 rgba(0,0,0,.08);

transition:all .15s ease;
}

.av-btn-primary:hover{
background:#089981;
transform:translateY(-1px);

box-shadow:
0 12px 32px rgba(10,163,136,.45),
inset 0 -2px 0 rgba(0,0,0,.1);
}




.av-phone{
display:flex;
align-items:center;
gap:8px;
font-weight:600;
font-size:14px;

padding:8px 14px;

border-radius:999px;
border:1px solid rgba(255,255,255,.08);

background:rgba(255,255,255,.05);

color:#CBD5E1;
}



.av-phone a{
color:#CBD5E1;
text-decoration:none;
}

.av-phone svg{
stroke:#0AA388;
}



.av-btn-ghost{
  background: rgba(255,255,255,.70);
  border-color: var(--av-border);
  color: var(--av-ink);
}
.av-btn-ghost:hover{
  background: rgba(255,255,255,.92);
  box-shadow: var(--av-shadow);
}

/* =========================================================
   HEADER
   ========================================================= */

.av-header{
position:relative;
top:0;
z-index:100;

background:#0F172A;
border-bottom:1px solid rgba(255,255,255,.06);

box-shadow:0 8px 30px rgba(0,0,0,.35);
}

/* header should span full width */

.av-header .av-container{
max-width:none;
margin:0;
padding:0 24px;
}

.av-header{
overflow:hidden;
}

/* container row */

.av-header-row{

height:72px;

display:flex;
align-items:center;

width:100%;

}





/* logo */

.custom-logo{
display:flex;
align-items:center;
flex:0 0 auto;
}



.custom-logo{
height:68px;
width:auto;
display:block;
transition:filter .6s ease;
}


/* Logo hover highlight */

.custom-logo:hover{


filter:brightness(1.15);
}


/* right side controls */

.av-nav{

display:flex;
align-items:center;
gap:18px;

margin-left:auto;

}

/* remove old divider */

.av-nav::before{
display:none;
}

/* phone */

.av-phone{
display:flex;
align-items:center;
gap:8px;

font-weight:600;
font-size:14px;

padding:8px 16px;

border-radius:999px;

background:rgba(255,255,255,.04);
border:1px solid rgba(255,255,255,.08);

color:#CBD5E1;

transition:all .2s ease;
}

.av-phone:hover{
background:rgba(255,255,255,.08);
}

.av-phone svg{
stroke:#0AA388;
}

.av-phone a{
color:#CBD5E1;
text-decoration:none;
}

/* primary CTA */

.av-btn-primary{

background:#0AA388;
color:white;

padding:10px 20px;

font-size:14px;
font-weight:600;

border-radius:10px;

border:none;

box-shadow:0 8px 22px rgba(10,163,136,.35);

transition:all .2s ease;
}

.av-btn-primary:hover{

background:#089981;

transform:translateY(-1px);

box-shadow:0 12px 30px rgba(10,163,136,.45);
}

@media (max-width:600px){

.av-btn-primary{
padding:9px 14px;
font-size:12.5px;
}

}

/* mobile */

/* Hide header CTA on mobile */

@media (max-width:900px){

.av-header .av-btn-primary{
display:none;
}

}

.av-menu-toggle{
display:none;
}

@media (max-width:900px){

.av-header-row{
height:auto;
flex-direction:column;
align-items:center;
justify-content:center;
padding:14px 0;
text-align:center;
}

/* logo */
.custom-logo{
margin-bottom:0px;
}

.custom-logo{
height:68px;
}
	


/* nav container */
.av-nav{
width:100%;
display:flex;
justify-content:center;
margin:0;
}

/* hide phone on mobile */
.av-phone{
display:none;
}

/* button */
.av-btn-primary{
padding:10px 18px;
font-size:13px;
border-radius:10px;
}

}

.av-hero{
padding:50px 0 40px;
position:relative;
overflow:hidden;
}

/* gradient atmosphere */

.av-hero::before{

z-index:1;
pointer-events:none;

content:"";

position:absolute;

top:-200px;
left:-200px;
right:-200px;

height:700px;

background:

radial-gradient(800px 380px at 20% 15%, rgba(10,163,136,.30), transparent 70%),
radial-gradient(900px 420px at 85% 5%, rgba(37,99,235,.25), transparent 70%);

filter:blur(40px);

opacity:.9;

}


.av-hero-inner{
position:relative;
z-index:2;
}

.av-metrics{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 20px;
}
.av-metric{

padding:14px 18px;

background:white;

border-radius:14px;

border:1px solid var(--av-border);

box-shadow:0 10px 24px rgba(0,0,0,.05);

transition:all .2s ease;

}

.av-metric:hover{

transform:translateY(-3px);

box-shadow:0 18px 40px rgba(0,0,0,.08);

}
.av-metric strong{ display:block; font-size: 14px; }
.av-metric span{ display:block; font-size: 12px; color: var(--av-sub); margin-top: 2px; }

.av-footer{
background:#0F172A;
color:#CBD5E1;
padding:80px 0 40px;
margin-top:80px;
}

.av-footer-grid{
display:grid;
grid-template-columns:2fr 1fr 1fr 1fr;
gap:40px;
}

.av-footer-col h4{
color:white;
margin-bottom:12px;
}

.av-footer-logo{
color:white;
font-size:22px;
margin-bottom:12px;
}

.av-footer ul{
list-style:none;
padding:0;
margin:0;
}

.av-footer li{
margin-bottom:8px;
color:#94A3B8;
}

.av-footer-bottom{
margin-top:40px;
border-top:1px solid rgba(255,255,255,0.1);
padding-top:20px;
font-size:13px;
color:#64748B;
}

@media(max-width:900px){

.av-footer-grid{
grid-template-columns:1fr;
gap:30px;
}

}


/* Form container upgrade */

.av-card-form{

padding:34px;

background:white;

border-radius:16px;

border:1px solid var(--av-border);

box-shadow:
0 20px 40px rgba(0,0,0,.06),
0 4px 12px rgba(0,0,0,.04);

position:relative;

}

.av-card-form::before{

content:"";

position:absolute;

top:0;
left:0;
right:0;

height:3px;

background:linear-gradient(90deg,#0AA388,#3B82F6);

border-radius:16px 16px 0 0;

}

/* =========================================================
   Project Intake Form
   ========================================================= */

.av-form{
display:grid;
gap:18px;
margin-top:12px;
}

.av-field{
display:grid;
gap:6px;
}

.av-label{
font-size:13px;
font-weight:600;
letter-spacing:.02em;
color:#334155;
}

.av-input,
.av-textarea,
.av-select{

width:100%;

padding:14px 16px;

border-radius:12px;

border:1px solid rgba(15,23,42,.12);

background:#ffffff;

font-size:15px;

color:#0F172A;

transition:all .18s ease;

outline:none;

}

.av-input:hover,
.av-textarea:hover,
.av-select:hover{
border-color:rgba(15,23,42,.25);
}

.av-input:focus,
.av-textarea:focus,
.av-select:focus{

border-color:#0AA388;

box-shadow:0 0 0 4px rgba(10,163,136,.12);

}

.av-textarea{
min-height:130px;
resize:vertical;
line-height:1.5;
}

.av-select{

appearance:none;

background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");

background-repeat:no-repeat;
background-position:right 14px center;
background-size:14px;

padding-right:40px;

}

.av-form button{

margin-top:10px;

padding:16px 20px;

border-radius:12px;

background:linear-gradient(135deg,#0AA388,#089981);

border:none;

color:white;

font-weight:600;

font-size:15px;

cursor:pointer;

box-shadow:0 10px 26px rgba(10,163,136,.35);

transition:all .18s ease;

}

.av-form button:hover{

transform:translateY(-2px);

box-shadow:0 16px 38px rgba(10,163,136,.45);

}

.av-footer-logo img{

height:70px;
width:auto;
display:block;

margin-bottom:10px;

opacity:.95;

}


.av-card-title{
display:flex;
align-items:center;
gap:10px;
}

.av-icon{
width:22px;
height:22px;
color:var(--av-primary);
}

.av-tech{
padding:40px 0;
border-top:1px solid var(--av-border);
border-bottom:1px solid var(--av-border);
background:white;
}

.av-tech-row{
display:flex;
gap:30px;
justify-content:center;
flex-wrap:wrap;
font-weight:600;
color:#64748B;
font-size:14px;
}

.av-card{

transition:all .25s ease;

}

.av-card:hover{

transform:translateY(-4px);
box-shadow:0 20px 40px rgba(0,0,0,.08);

}



#av-scroll-top{

position:fixed;

bottom:28px;
right:28px;

width:46px;
height:46px;

border-radius:50%;

border:none;

background:#0AA388;

color:white;

display:flex;
align-items:center;
justify-content:center;

cursor:pointer;

box-shadow:
0 10px 24px rgba(10,163,136,.35);

opacity:0;
visibility:hidden;

transition:all .25s ease;

z-index:999;

}

#av-scroll-top svg{
width:20px;
height:20px;
}

#av-scroll-top.show{
opacity:1;
visibility:visible;
}

#av-scroll-top:hover{

transform:translateY(-2px);

background:#089981;

box-shadow:
0 14px 30px rgba(10,163,136,.45);

}


/* =========================================
   Section Divider
========================================= */

.av-divider{

position:relative;

height:70px;

margin-top:-30px;

pointer-events:none;

}

.av-divider::before{

content:"";

position:absolute;

left:0;
right:0;
top:0;

height:160px;

background:

radial-gradient(600px 200px at 20% 50%, rgba(10,163,136,.10), transparent 70%),
radial-gradient(700px 240px at 80% 40%, rgba(59,130,246,.10), transparent 70%);

filter:blur(20px);

opacity:.7;

}

.av-divider::after{

content:"";

position:absolute;

left:50%;
top:70px;

width:80px;
height:2px;

background:linear-gradient(90deg,#0AA388,#3B82F6);

transform:translateX(-50%);

border-radius:2px;

opacity:.7;

}

.custom-logo{
height:68px;
width:auto;
display:block;
transition:filter .6s ease;

image-rendering:-webkit-optimize-contrast;
backface-visibility:hidden;
transform:translateZ(0);
}

.custom-logo:hover{
filter:brightness(1.15);
}

/* WP defaults */
.entry-content{ max-width: var(--av-max); margin: 0 auto; padding: 26px var(--av-pad); }
