/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.1.0
Text Domain: Avada
*/



/* ============================================================
   JC BUILD CO — header & footer (child theme)
   Colors come from Avada's Global Color Palette CSS variables:
   color1 lead-teal · color4 abyss · color5 gold · color6 gold-hover
   color7 mist · color8 ivory
   ============================================================ */

:root {
	--jc-ease: cubic-bezier(.22, .8, .24, 1);
	--jc-head: "Helvetica Neue", HelveticaNeue, Helvetica, Arial, sans-serif;
	--jc-body: "Inter", "Helvetica Neue", Arial, sans-serif;
}

.jc-wrap { width: min(1240px, 92%); margin: 0 auto; }

/* ---------- HEADER ---------- */
.jc-header {
	position: fixed; inset: 0 0 auto; z-index: 1000;
	border-bottom: 1px solid transparent;
	transition: background .5s var(--jc-ease), border-color .5s var(--jc-ease);
}
body.admin-bar .jc-header { top: 32px; }
.jc-header.jc-scrolled {
	background: color-mix(in srgb, var(--awb-color4) 82%, transparent);
	-webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
	border-bottom-color: color-mix(in srgb, var(--awb-color5) 14%, transparent);
}
.jc-nav { display: flex; align-items: center; justify-content: space-between; padding: 30px 0; transition: padding .5s var(--jc-ease); }
.jc-header.jc-scrolled .jc-nav { padding: 16px 0; }

.jc-logo {
	font-family: var(--jc-head); font-weight: 700; font-size: 1.18rem;
	letter-spacing: .14em; color: #fff !important; line-height: 1;
	display: flex; flex-direction: column; gap: 3px; text-decoration: none;
}
.jc-logo span {
	font-family: var(--jc-body); font-weight: 400; font-size: .56rem;
	letter-spacing: .52em; color: var(--awb-color5);
}

.jc-links ul { display: flex; align-items: center; gap: 44px; list-style: none; margin: 0; padding: 0; }
.jc-links li { position: relative; margin: 0; }
.jc-links a {
	font-family: var(--jc-body); font-size: .78rem; font-weight: 400;
	letter-spacing: .22em; text-transform: uppercase;
	color: color-mix(in srgb, var(--awb-color8) 85%, transparent) !important;
	text-decoration: none; padding: 8px 0; display: inline-block;
	position: relative; transition: color .3s;
}
.jc-links > ul > li > a::after {
	content: ""; position: absolute; left: 0; bottom: 2px; width: 0; height: 1px;
	background: var(--awb-color5); transition: width .4s var(--jc-ease);
}
.jc-links > ul > li > a:hover { color: #fff !important; }
.jc-links > ul > li > a:hover::after { width: 100%; }

.jc-caret {
	display: inline-block; margin-left: 7px; width: 7px; height: 7px;
	border-right: 1px solid var(--awb-color5); border-bottom: 1px solid var(--awb-color5);
	transform: rotate(45deg) translateY(-2px); transition: transform .3s;
}

.jc-dropdown {
	position: absolute; top: calc(100% + 14px); left: 50%;
	transform: translate(-50%, 14px);
	min-width: 250px; padding: 14px 0; list-style: none; margin: 0;
	background: color-mix(in srgb, var(--awb-color4) 92%, transparent);
	-webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
	border: 1px solid color-mix(in srgb, var(--awb-color5) 18%, transparent);
	opacity: 0; visibility: hidden; transition: all .35s var(--jc-ease);
}
.jc-dropdown::before { content: ""; position: absolute; top: -14px; left: 0; right: 0; height: 14px; }
.jc-dropdown li a {
	display: block; padding: 12px 28px; font-size: .72rem; letter-spacing: .18em;
	color: color-mix(in srgb, var(--awb-color8) 75%, transparent) !important;
	border-left: 1px solid transparent; transition: all .3s;
}
.jc-dropdown li a:hover {
	color: var(--awb-color5) !important;
	background: color-mix(in srgb, var(--awb-color5) 6%, transparent);
	border-left-color: var(--awb-color5); padding-left: 34px;
}
.jc-has-drop:hover .jc-dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.jc-has-drop:hover .jc-caret { transform: rotate(225deg) translateY(-2px); }

.jc-cta {
	border: 1px solid color-mix(in srgb, var(--awb-color5) 55%, transparent);
	padding: 12px 28px !important; color: var(--awb-color5) !important;
	transition: all .4s var(--jc-ease) !important;
}
.jc-cta:hover { background: var(--awb-color5); color: var(--awb-color3) !important; }
.jc-links > ul > li > a.jc-cta::after { display: none; }

/* burger */
.jc-burger {
	display: none; background: none; border: 0; cursor: pointer;
	z-index: 1200; padding: 6px; flex-direction: column; gap: 6px;
}
.jc-burger span { display: block; width: 28px; height: 1.5px; background: var(--awb-color8); transition: all .4s var(--jc-ease); }
.jc-burger.jc-open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.jc-burger.jc-open span:nth-child(2) { opacity: 0; }
.jc-burger.jc-open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* mobile panel */
.jc-mpanel {
	position: fixed; inset: 0; z-index: 1100;
	background: color-mix(in srgb, var(--awb-color4) 97%, transparent);
	-webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
	display: flex; flex-direction: column; justify-content: center; padding: 0 10vw;
	opacity: 0; visibility: hidden; transition: all .5s var(--jc-ease);
}
.jc-mpanel.jc-open { opacity: 1; visibility: visible; }
.jc-mpanel ul { list-style: none; margin: 0; padding: 0; }
.jc-mpanel > ul > li { border-bottom: 1px solid color-mix(in srgb, var(--awb-color5) 12%, transparent); overflow: hidden; }
.jc-mpanel a {
	display: block; padding: 20px 0; font-family: var(--jc-head); font-weight: 700;
	font-size: 1.5rem; letter-spacing: .04em; color: var(--awb-color8) !important;
	text-decoration: none;
}
.jc-msub { max-height: 0; transition: max-height .5s var(--jc-ease); }
.jc-msub.jc-open { max-height: 300px; }
.jc-msub a {
	font-family: var(--jc-body); font-weight: 300; font-size: .85rem;
	letter-spacing: .2em; text-transform: uppercase;
	color: var(--awb-color7) !important; padding: 12px 0 12px 24px;
}
.jc-msub a:hover { color: var(--awb-color5) !important; }
.jc-mtoggle { display: flex; align-items: center; justify-content: space-between; cursor: pointer; }

/* ---------- FOOTER ---------- */
.jc-footer {
	border-top: 1px solid color-mix(in srgb, var(--awb-color5) 14%, transparent);
	padding: 70px 0 44px; background: var(--awb-color4);
}
.jc-ft { display: flex; justify-content: space-between; align-items: center; gap: 36px; flex-wrap: wrap; }
.jc-ftnav { display: flex; gap: 32px; list-style: none; flex-wrap: wrap; margin: 0; padding: 0; }
.jc-ftnav li { margin: 0; }
.jc-ftnav a {
	font-family: var(--jc-body); font-size: .68rem; letter-spacing: .26em;
	text-transform: uppercase; color: var(--awb-color7) !important;
	text-decoration: none; transition: color .3s;
}
.jc-ftnav a:hover { color: var(--awb-color5) !important; }
.jc-ftlegal {
	width: 100%; margin-top: 44px; padding-top: 28px;
	border-top: 1px solid color-mix(in srgb, var(--awb-color5) 9%, transparent);
	display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap;
	font-family: var(--jc-body); font-size: .66rem; letter-spacing: .14em;
	color: color-mix(in srgb, var(--awb-color7) 55%, transparent);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 860px) {
	.jc-links { display: none; }
	.jc-burger { display: flex; }
}
@media (max-width: 782px) {
	body.admin-bar .jc-header { top: 46px; }
}
@media (prefers-reduced-motion: reduce) {
	.jc-header, .jc-nav, .jc-dropdown, .jc-mpanel, .jc-msub { transition: none; }
}

/* ============================================================
   JC BUILD CO — shared stylesheet
   Lead color #3c5156 · Champagne gold accents · Helvetica/Inter
   ============================================================ */
:root{
  --teal:      #3c5156;
  --teal-deep: #24373b;
  --ink:       #101b1d;
  --abyss:     #0b1315;
  --gold:      #c3a877;
  --gold-soft: #d9c49a;
  --mist:      #9db1b2;
  --ivory:     #f4f1ea;
  --white:     #ffffff;
  --font-head: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.22,.8,.24,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  background:var(--abyss);
  color:var(--ivory);
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--ink)}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:var(--font-head);font-weight:700;letter-spacing:-.02em;line-height:1.08}
.wrap{width:min(1240px,92%);margin:0 auto}
.eyebrow{
  font-size:.72rem;font-weight:500;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold);display:flex;align-items:center;gap:16px;
}
.eyebrow::before{content:"";width:44px;height:1px;background:var(--gold);flex:none}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:44px;height:1px;background:var(--gold);flex:none}
.sec-title{font-size:clamp(2.1rem,4.2vw,3.4rem);color:var(--white);margin:22px 0 0}
.sec-sub{color:var(--mist);max-width:56ch;margin-top:20px;font-size:.98rem}
.center{text-align:center}
.center .sec-sub{margin-inline:auto}

/* ---------- reveal (armed only when JS present) ---------- */
html.jc-anim .rv{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
html.jc-anim .rv.in{opacity:1;transform:none}
html.jc-anim .rv.d1{transition-delay:.12s}
html.jc-anim .rv.d2{transition-delay:.24s}
html.jc-anim .rv.d3{transition-delay:.36s}

/* ---------- Avada canvas override ---------- */
#main{background-color:var(--abyss) !important;padding:0 !important}
#main .fusion-row{max-width:100%}
body{background:var(--abyss)}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  font-size:.76rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;
  padding:19px 40px;transition:all .45s var(--ease);cursor:pointer;border:1px solid transparent;
  font-family:var(--font-body);
}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px);box-shadow:0 18px 44px -14px rgba(195,168,119,.45)}
.btn-ghost{border-color:rgba(244,241,234,.35);color:var(--ivory)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.btn .arr{transition:transform .4s var(--ease)}
.btn:hover .arr{transform:translateX(6px)}

/* ---------- HOME HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-bg img{width:100%;height:100%;object-fit:cover;animation:heroZoom 22s var(--ease) forwards;filter:brightness(.85)}
@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(105deg,rgba(11,19,21,.88) 0%,rgba(24,37,40,.55) 46%,rgba(11,19,21,.15) 75%),
             linear-gradient(to top,var(--abyss) 0%,transparent 32%);
}
.hero-inner{padding:160px 0 120px}
.hero h1{font-size:clamp(2.7rem,6.4vw,5.4rem);color:var(--white);max-width:14ch;margin:28px 0 0}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{max-width:46ch;margin-top:28px;color:rgba(244,241,234,.72);font-size:1.02rem}
.hero-ctas{display:flex;gap:22px;margin-top:48px;flex-wrap:wrap}
.hero-scroll{
  position:absolute;bottom:44px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:12px;
  font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--mist);
}
.hero-scroll i{width:1px;height:56px;background:linear-gradient(var(--gold),transparent);display:block;animation:drip 2.4s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{position:relative;min-height:64svh;display:flex;align-items:flex-end;isolation:isolate;padding-bottom:90px}
.page-hero .hero-bg img{animation:heroZoom 16s var(--ease) forwards}
.page-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top,var(--abyss) 4%,rgba(11,19,21,.6) 45%,rgba(11,19,21,.35) 100%);
}
.crumbs{font-size:.64rem;letter-spacing:.34em;text-transform:uppercase;color:var(--mist);margin-bottom:24px}
.crumbs a{color:var(--gold);transition:color .3s}
.crumbs a:hover{color:var(--gold-soft)}
.crumbs span{margin:0 10px;color:rgba(157,177,178,.4)}
.page-hero h1{font-size:clamp(2.6rem,5.6vw,4.6rem);color:var(--white);max-width:16ch}
.page-hero .lede{max-width:52ch;margin-top:24px;color:rgba(244,241,234,.72);font-size:1.02rem}

/* ---------- STATS ---------- */
.stats{border-block:1px solid rgba(195,168,119,.14);background:rgba(60,81,86,.08)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:54px 20px;text-align:center;border-left:1px solid rgba(195,168,119,.12)}
.stat:first-child{border-left:0}
.stat b{font-family:var(--font-head);font-weight:700;font-size:clamp(2rem,3.4vw,2.9rem);color:var(--white);display:block;line-height:1}
.stat b sup{color:var(--gold);font-size:.55em;top:-.5em}
.stat small{display:block;margin-top:12px;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mist)}

/* ---------- CUBE ---------- */
.cube-sec{padding:150px 0;position:relative;overflow:hidden}
.cube-sec::before{
  content:"";position:absolute;width:720px;height:720px;right:-240px;top:50%;transform:translateY(-50%);
  background:radial-gradient(circle,rgba(60,81,86,.32),transparent 65%);pointer-events:none;
}
.cube-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:8%;align-items:center}
.feat{list-style:none;margin-top:44px}
.feat li{
  display:flex;gap:20px;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(195,168,119,.12);
  font-size:.94rem;color:rgba(244,241,234,.8);
}
.feat li:first-child{border-top:1px solid rgba(195,168,119,.12)}
.feat b{font-family:var(--font-head);color:var(--gold);font-size:.72rem;letter-spacing:.2em;flex:none}
.stage{display:flex;align-items:center;justify-content:center;perspective:1400px;min-height:460px}
.cube{--s:220px;width:var(--s);height:var(--s);position:relative;transform-style:preserve-3d;animation:spin 18s linear infinite}
.stage:hover .cube{animation-play-state:paused}
@keyframes spin{from{transform:rotateX(-22deg) rotateY(0)}to{transform:rotateX(-22deg) rotateY(360deg)}}
.face{
  position:absolute;inset:0;
  background:linear-gradient(135deg,#466066 0%,var(--teal) 38%,#22343a 100%);
  border:1px solid rgba(195,168,119,.65);
  box-shadow:inset 0 0 60px rgba(11,19,21,.55);
  display:flex;align-items:center;justify-content:center;backface-visibility:hidden;
}
.face::after{content:"";position:absolute;inset:14px;border:1px solid rgba(195,168,119,.28)}
.face i{font-style:normal;font-family:var(--font-head);font-weight:700;font-size:2rem;letter-spacing:.18em;color:rgba(244,241,234,.9);text-shadow:0 0 22px rgba(195,168,119,.35)}
.f1{transform:translateZ(calc(var(--s)/2))}
.f2{transform:rotateY(90deg) translateZ(calc(var(--s)/2))}
.f3{transform:rotateY(180deg) translateZ(calc(var(--s)/2))}
.f4{transform:rotateY(-90deg) translateZ(calc(var(--s)/2))}
.f5{transform:rotateX(90deg) translateZ(calc(var(--s)/2));background:linear-gradient(135deg,#d9c49a,#c3a877 45%,#8f7a50)}
.f6{transform:rotateX(-90deg) translateZ(calc(var(--s)/2));background:#16232a}
.f5 i,.f6 i{color:var(--ink);text-shadow:none}
.shadow{
  position:absolute;bottom:6%;left:50%;transform:translateX(-50%);
  width:300px;height:44px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%);
  filter:blur(6px);animation:sh 18s linear infinite;
}
@keyframes sh{0%,100%{transform:translateX(-50%) scaleX(1)}25%{transform:translateX(-50%) scaleX(1.18)}50%{transform:translateX(-50%) scaleX(1)}75%{transform:translateX(-50%) scaleX(1.18)}}
.stage-wrap{position:relative}
.stage-cap{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);font-size:.6rem;letter-spacing:.42em;text-transform:uppercase;color:var(--mist);white-space:nowrap}

/* ---------- SPLIT (image + copy) ---------- */
.split-sec{padding:150px 0}
.split-sec.tint{background:linear-gradient(var(--abyss),#0e181b 50%,var(--abyss))}
.split{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}
.split.flip .split-img{order:2}
.split-img{position:relative}
.split-img img{height:600px;width:100%;object-fit:cover;filter:saturate(.9)}
.split-img::after{content:"";position:absolute;inset:26px -26px -26px 26px;border:1px solid rgba(195,168,119,.35);z-index:-1}
.split.flip .split-img::after{inset:26px 26px -26px -26px}
.split-copy p{color:var(--mist);margin-top:24px;font-size:.97rem}
.badge{
  position:absolute;left:-34px;bottom:52px;background:var(--gold);color:var(--ink);
  padding:26px 30px;font-family:var(--font-head);font-weight:700;line-height:1.1;
}
.badge b{font-size:2rem;display:block}
.badge small{font-family:var(--font-body);font-weight:500;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase}
.sig{margin-top:40px;display:flex;align-items:center;gap:20px}
.sig .ln{width:56px;height:1px;background:var(--gold)}
.sig b{font-family:var(--font-head);color:var(--white);letter-spacing:.06em}
.sig small{display:block;color:var(--mist);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}

/* ---------- SERVICES GRID ---------- */
.services{padding:150px 0}
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(195,168,119,.14);border:1px solid rgba(195,168,119,.14);margin-top:70px}
.svc{background:var(--abyss);padding:52px 36px 60px;position:relative;overflow:hidden;transition:background .5s var(--ease);display:block}
.svc::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.svc:hover{background:#101d20}
.svc:hover::before{transform:scaleX(1)}
.svc em{font-style:normal;font-family:var(--font-head);font-weight:700;font-size:.8rem;color:var(--gold);letter-spacing:.2em}
.svc h3{font-size:1.35rem;color:var(--white);margin:20px 0 16px}
.svc p{font-size:.86rem;color:var(--mist)}
.svc .more{display:inline-flex;align-items:center;gap:10px;margin-top:28px;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.svc .more .arr{transition:transform .4s var(--ease)}
.svc:hover .more .arr{transform:translateX(6px)}

/* services overview page: large rows */
.svc-rows{margin-top:80px;display:grid;gap:110px}
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}
.svc-row:nth-child(even) .svc-row-img{order:2}
.svc-row-img{position:relative;overflow:hidden}
.svc-row-img img{height:480px;width:100%;object-fit:cover;filter:saturate(.85);transition:transform 1.1s var(--ease)}
.svc-row:hover .svc-row-img img{transform:scale(1.05)}
.svc-row-img em{
  position:absolute;top:24px;left:24px;font-style:normal;font-family:var(--font-head);font-weight:700;
  font-size:.8rem;letter-spacing:.24em;color:var(--ink);background:var(--gold);padding:10px 18px;
}
.svc-row h3{font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--white)}
.svc-row p{color:var(--mist);margin-top:18px;font-size:.95rem}
.svc-row ul{list-style:none;margin-top:26px}
.svc-row ul li{padding:12px 0;border-bottom:1px solid rgba(195,168,119,.12);font-size:.88rem;color:rgba(244,241,234,.78);display:flex;gap:14px;align-items:baseline}
.svc-row ul li::before{content:"—";color:var(--gold);flex:none}

/* ---------- PROCESS ---------- */
.process{padding:150px 0;background:#0e181b}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;margin-top:70px}
.proc{position:relative;padding-top:34px}
.proc::before{content:"";position:absolute;top:0;left:0;width:52px;height:2px;background:var(--gold)}
.proc em{font-style:normal;font-family:var(--font-head);font-weight:700;font-size:2.4rem;color:rgba(195,168,119,.28);line-height:1}
.proc h3{font-size:1.05rem;color:var(--white);margin:16px 0 12px;letter-spacing:.04em}
.proc p{font-size:.84rem;color:var(--mist)}

/* ---------- VALUES ---------- */
.values{padding:150px 0}
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(195,168,119,.14);border:1px solid rgba(195,168,119,.14);margin-top:70px}
.val{background:var(--abyss);padding:56px 40px;transition:background .5s var(--ease)}
.val:hover{background:#101d20}
.val .glyph{width:44px;height:44px;border:1px solid var(--gold);transform:rotate(45deg);display:flex;align-items:center;justify-content:center;margin-bottom:34px}
.val .glyph i{transform:rotate(-45deg);font-style:normal;color:var(--gold);font-family:var(--font-head);font-weight:700;font-size:.85rem}
.val h3{font-size:1.2rem;color:var(--white);margin-bottom:14px}
.val p{font-size:.87rem;color:var(--mist)}

/* ---------- PORTFOLIO ---------- */
.portfolio{padding:150px 0;background:#0e181b}
.filters{display:flex;gap:12px;flex-wrap:wrap;margin-top:54px}
.filters button{
  background:transparent;border:1px solid rgba(195,168,119,.28);color:var(--mist);
  font-family:var(--font-body);font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;
  padding:12px 24px;cursor:pointer;transition:all .35s var(--ease);
}
.filters button:hover{border-color:var(--gold);color:var(--gold)}
.filters button.on{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:56px}
.pf{position:relative;overflow:hidden;cursor:pointer;aspect-ratio:4/5;display:block}
.pf.wide{grid-column:span 2;aspect-ratio:auto}
.pf.hide{display:none}
.pf img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter 1.1s var(--ease);filter:saturate(.85)}
.pf:hover img{transform:scale(1.07);filter:saturate(1)}
.pf::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,19,21,.86) 0%,transparent 55%)}
.pf-meta{position:absolute;left:32px;right:32px;bottom:28px;z-index:2;transform:translateY(12px);transition:transform .6s var(--ease)}
.pf:hover .pf-meta{transform:none}
.pf-meta small{font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.pf-meta h3{font-size:1.3rem;color:var(--white);margin-top:8px}

/* ---------- GALLERY STRIP (service pages) ---------- */
.gallery{padding:0 0 150px}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gal-grid img{height:340px;width:100%;object-fit:cover;filter:saturate(.85);transition:filter .6s,transform .9s var(--ease)}
.gal-grid img:hover{filter:saturate(1);transform:scale(1.02)}

/* ---------- QUOTE ---------- */
.quote{padding:150px 0;text-align:center;position:relative}
.quote::before{content:"\201C";font-family:Georgia,serif;font-size:9rem;color:rgba(195,168,119,.25);line-height:0;display:block;margin-bottom:40px}
.quote blockquote{font-family:var(--font-head);font-weight:700;font-size:clamp(1.4rem,2.8vw,2.2rem);color:var(--white);max-width:26ch;margin:0 auto;line-height:1.35}
.quote cite{display:block;margin-top:36px;font-style:normal;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mist)}
.quote cite b{color:var(--gold);font-weight:500}

/* ---------- CTA BAND ---------- */
.cta-band{position:relative;padding:130px 0;text-align:center;isolation:isolate;overflow:hidden}
.cta-band .hero-bg img{animation:none;filter:brightness(.5)}
.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(11,19,21,.75),rgba(11,19,21,.75))}
.cta-band h2{font-size:clamp(2rem,4vw,3.2rem);color:var(--white);max-width:20ch;margin:22px auto 0}
.cta-band .btn{margin-top:46px}

/* ---------- CONTACT ---------- */
.contact{padding:150px 0}
.ct-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:9%;margin-top:70px}
.ct-info>div{padding:28px 0;border-bottom:1px solid rgba(195,168,119,.14)}
.ct-info>div:first-child{border-top:1px solid rgba(195,168,119,.14)}
.ct-info small{font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:8px}
.ct-info p{color:var(--ivory);font-size:1rem}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.fld{margin-bottom:26px}
.fld label{display:block;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mist);margin-bottom:10px}
.fld input,.fld select,.fld textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid rgba(195,168,119,.28);
  color:var(--ivory);font-family:var(--font-body);font-weight:300;font-size:1rem;padding:12px 2px;
  transition:border-color .4s;outline:0;border-radius:0;
}
.fld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 10px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.fld select option{background:var(--ink)}
.fld textarea{resize:vertical;min-height:110px}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-bottom-color:var(--gold)}
.map-note{margin-top:44px;padding:30px;border:1px solid rgba(195,168,119,.2);font-size:.84rem;color:var(--mist)}
.map-note b{color:var(--gold);font-weight:500;display:block;margin-bottom:6px;letter-spacing:.2em;font-size:.66rem;text-transform:uppercase}

/* ---------- NEXT SERVICE ---------- */
.next-svc{border-top:1px solid rgba(195,168,119,.14)}
.next-svc .wrap{display:grid;grid-template-columns:1fr 1fr}
.next-svc a{padding:60px 20px;display:block;transition:background .4s}
.next-svc a:hover{background:rgba(60,81,86,.12)}
.next-svc a:last-child{text-align:right;border-left:1px solid rgba(195,168,119,.14)}
.next-svc small{font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--mist)}
.next-svc b{display:block;font-family:var(--font-head);font-weight:700;font-size:1.4rem;color:var(--white);margin-top:10px}
.next-svc a:hover b{color:var(--gold)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1024px){
  .svc-grid{grid-template-columns:1fr 1fr}
  .cube-grid,.split,.svc-row{grid-template-columns:1fr;gap:80px}
  .svc-row{gap:44px}
  .svc-row:nth-child(even) .svc-row-img{order:0}
  .stage{min-height:400px}
  .badge{left:20px}
  .split-img::after,.split.flip .split-img::after{inset:18px -14px -14px 18px}
  .proc-grid{grid-template-columns:1fr 1fr;gap:54px 40px}
  .val-grid{grid-template-columns:1fr}
}
@media(max-width:860px){
  .nav-links{display:none}
  .burger{display:flex}
  .stats .wrap{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){border-left:0}
  .stat{padding:38px 12px}
  .pf-grid{grid-template-columns:1fr 1fr}
  .pf.wide{grid-column:span 2}
  .ct-grid{grid-template-columns:1fr;gap:70px}
  .gal-grid{grid-template-columns:1fr}
  .gal-grid img{height:300px}
  .page-hero{min-height:56svh;padding-bottom:64px}
}
@media(max-width:560px){
  .svc-grid{grid-template-columns:1fr}
  .pf-grid{grid-template-columns:1fr}
  .pf.wide{grid-column:span 1;aspect-ratio:4/5}
  form .row{grid-template-columns:1fr}
  .cube{--s:160px}
  .stage{min-height:320px;perspective:1000px}
  .hero-ctas .btn{width:100%;justify-content:center}
  .split-img img{height:440px}
  .svc-row-img img{height:340px}
  .proc-grid{grid-template-columns:1fr}
  .next-svc .wrap{grid-template-columns:1fr}
  .next-svc a:last-child{text-align:left;border-left:0;border-top:1px solid rgba(195,168,119,.14)}
  .cube-sec,.split-sec,.services,.portfolio,.quote,.contact,.process,.values{padding:100px 0}
  .gallery{padding-bottom:100px}
}
/* ---------- SMALL PHONES (<400px) ---------- */
@media(max-width:400px){
  .hero h1{font-size:2.35rem}
  .page-hero h1{font-size:2.15rem}
  .btn{padding:17px 28px;letter-spacing:.2em;font-size:.7rem}
  .stats .wrap{grid-template-columns:1fr}
  .stat{border-left:0;border-top:1px solid rgba(195,168,119,.12);padding:30px 12px}
  .stat:first-child{border-top:0}
  .quote::before{font-size:6rem;margin-bottom:28px}
  .eyebrow{letter-spacing:.3em;font-size:.66rem}
  .eyebrow::before{width:28px}
  .badge{padding:18px 22px}
  .badge b{font-size:1.5rem}
}

/* ---------- SHORT SCREENS (landscape phones) ---------- */
@media(max-height:640px){
  .hero-scroll{display:none}
  .hero-inner{padding:130px 0 90px}
}

/* ---------- TOUCH DEVICES (no hover) ---------- */
@media(hover:none){
  /* hover-revealed content must be visible by default on phones/tablets */
  .pf-meta{transform:none}
  .svc::before{transform:scaleX(1)}
  .svc .more .arr{transform:none}
  .pf img,.gal-grid img,.svc-row-img img{filter:saturate(.95)}
  .btn-gold:hover,.btn-ghost:hover{transform:none}
}

/* ---------- iOS INPUT POLISH ---------- */
.fld input,.fld select,.fld textarea{font-size:max(16px,1rem);-webkit-appearance:none;appearance:none}
.fld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 10px) 50%;background-size:6px 6px;background-repeat:no-repeat}

@media(prefers-reduced-motion:reduce){
  .cube,.shadow,.hero-bg img,.hero-scroll i{animation:none}
  .rv{opacity:1;transform:none;transition:none}
}

/* ============ CF7 — JC ESTIMATE FORM (consolidated) ============ */
.jc-cf7 .jcf-row{display:grid !important;grid-template-columns:1fr 1fr;gap:0 26px;float:none !important}
.jc-cf7 .jcf-fld{margin:0 0 26px !important;padding:0 !important;width:auto !important;float:none !important;min-width:0}
.jc-cf7 .jcf-fld > label{display:block;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mist);margin-bottom:10px}
.jc-cf7 .req{color:var(--gold)}
.jc-cf7 .wpcf7-form-control-wrap{display:block;width:100%}
.jc-cf7 form br{display:none !important}
.jc-cf7 form > p, .jc-cf7 .jcf-row > p{display:none !important}

/* inputs — beat Avada's form CSS */
.jc-cf7 input:not([type="submit"]):not([type="checkbox"]),
.jc-cf7 select,
.jc-cf7 textarea{
  width:100% !important;background:transparent !important;
  border:0 !important;border-bottom:1px solid rgba(195,168,119,.28) !important;
  border-radius:0 !important;box-shadow:none !important;
  color:var(--ivory) !important;font-family:var(--font-body) !important;
  font-weight:300;font-size:max(16px,1rem) !important;
  padding:12px 2px !important;outline:0;transition:border-color .4s;height:auto !important;
}
.jc-cf7 input:not([type="submit"]):focus,
.jc-cf7 select:focus,
.jc-cf7 textarea:focus{border-bottom-color:var(--gold) !important}
.jc-cf7 textarea{min-height:110px;resize:vertical}
.jc-cf7 select option{background:var(--ink);color:var(--ivory)}

/* Avada's select wrapper + arrow */
.jc-cf7 .wpcf7-select-parent{background:transparent !important;border:0 !important;width:100%}
.jc-cf7 .select-arrow{display:none !important}

/* checkboxes */
.jc-cf7 .wpcf7-checkbox{display:grid;gap:14px;padding-top:6px}
.jc-cf7 .wpcf7-list-item{margin:0 !important;display:block}
.jc-cf7 .wpcf7-list-item label{display:flex;align-items:center;gap:14px;cursor:pointer;font-size:.92rem;color:rgba(244,241,234,.8)}
.jc-cf7 input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:20px !important;height:20px !important;flex:none;border:1px solid rgba(195,168,119,.45) !important;background:transparent !important;cursor:pointer;transition:all .3s;border-radius:0 !important}
.jc-cf7 input[type="checkbox"]:checked{background:var(--gold) !important;border-color:var(--gold) !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23101b1d' d='M6.5 12.1 2.4 8l1.4-1.4 2.7 2.7 5.7-5.7L13.6 5z'/%3E%3C/svg%3E") !important;background-size:14px !important;background-position:center !important;background-repeat:no-repeat !important}

/* submit button */
.jc-cf7 .jcf-btn{
  display:inline-flex;background:var(--gold) !important;color:var(--ink) !important;
  border:0 !important;border-radius:0 !important;cursor:pointer;
  font-family:var(--font-body) !important;font-size:.76rem !important;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;padding:19px 40px !important;
  transition:all .45s;margin-top:10px;
}
.jc-cf7 .jcf-btn:hover{background:var(--gold-soft) !important;transform:translateY(-2px)}
.jc-cf7 .fusion-slider-loading{display:none !important}

/* validation + response */
.jc-cf7 .wpcf7-not-valid{border-bottom-color:#c0574f !important}
.jc-cf7 .wpcf7-not-valid-tip{font-size:.7rem;letter-spacing:.1em;color:#c0574f;margin-top:8px}
.wpcf7 form .wpcf7-response-output{margin:34px 0 0;padding:18px 24px;border:1px solid rgba(195,168,119,.4);color:var(--ivory);font-size:.88rem}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--gold);color:var(--gold)}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:#c0574f;color:#e0a29d}
.wpcf7-spinner{background-color:var(--gold)}

@media(max-width:560px){
  .jc-cf7 .jcf-row{grid-template-columns:1fr}
}