/* ==========================================================================
   FenceFox — South Florida Fence, Gate & Access Control Contractor
   Stylesheet v2
   ========================================================================== */

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

:root{
  --navy-950:#063064;
  --navy-900:#0B4EA2;
  --navy-800:#0E63CF;
  --navy-700:#4074B6;
  --blue-600:#2E6FB0;
  --blue-100:#E6EDF5;
  --orange-700:#C65F00;
  --orange-600:#FF7A00;
  --orange-500:#FF8F28;
  --orange-100:#FFEFE0;
  --gold:#F5A623;
  --ink:#16212E;
  --slate:#55677A;
  --slate-light:#8996A4;
  --paper:#F6F8FA;
  --paper-dark:#EEF2F6;
  --white:#FFFFFF;
  --line:#E2E8EF;
  --radius:16px;
  --radius-sm:10px;
  --shadow-sm: 0 1px 3px rgba(10,37,64,0.08);
  --shadow-md: 0 10px 30px rgba(10,37,64,0.10);
  --shadow-lg: 0 20px 50px rgba(10,37,64,0.16);
  --maxw:1200px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--white);color:var(--ink);font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
svg{display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif;font-weight:700;line-height:1.2;margin:0 0 .5em;color:var(--navy-950);}
h1{font-size:clamp(2.1rem,4vw,3.1rem);font-weight:800;line-height:1.15;}
h2{font-size:clamp(1.6rem,2.6vw,2.2rem);}
h3{font-size:1.25rem;font-weight:700;}
p{margin:0 0 1em;color:var(--slate);}
p:last-child{margin-bottom:0;}
strong{color:var(--navy-950);font-weight:700;}
button{font-family:inherit;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
@media(min-width:900px){.container{padding:0 32px;}}

.section{padding:88px 0;}
.section-tight{padding:48px 0;}
.section-alt{background:var(--paper);}

.section-head{max-width:640px;margin:0 0 44px;}
.section-head .eyebrow{display:inline-block;color:var(--orange-600);font-weight:700;font-size:.85rem;letter-spacing:.02em;margin-bottom:10px;}
.section-head p{font-size:1.05rem;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 26px;font-weight:700;font-size:.98rem;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:all .18s ease;white-space:nowrap;}
.btn:active{transform:translateY(1px);}
.btn svg{width:19px;height:19px;flex:none;}
.btn-primary{background:var(--orange-600);color:var(--white);box-shadow:0 6px 18px rgba(242,102,13,.30);}
.btn-primary:hover{background:var(--orange-700);box-shadow:0 8px 22px rgba(242,102,13,.38);}
.btn-secondary{background:rgba(255,255,255,.12);color:var(--white);border-color:rgba(255,255,255,.55);backdrop-filter:blur(2px);}
.btn-secondary:hover{border-color:var(--white);background:rgba(255,255,255,.2);}
.btn-outline-navy{background:transparent;color:var(--navy-900);border-color:var(--navy-900);}
.btn-outline-navy:hover{background:var(--navy-900);color:var(--white);}
.btn-block{width:100%;}
.btn-sm{padding:10px 18px;font-size:.9rem;}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;}

/* ---------- Top bar ---------- */
.topbar{background:var(--navy-950);color:#AEC1D6;font-size:.84rem;padding:9px 0;}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.topbar a{color:#AEC1D6;}
.topbar .topbar-phone{color:var(--orange-500);font-weight:700;}
.topbar-left{display:flex;gap:22px;flex-wrap:wrap;}
.topbar-left span{display:inline-flex;align-items:center;gap:6px;}
.topbar-left svg{width:15px;height:15px;flex:none;}

/* ---------- Header / nav ---------- */
.site-header{background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px;}
.logo{display:flex;align-items:center;gap:10px;flex:none;}
.logo .mark{width:38px;height:38px;flex:none;border-radius:9px;overflow:hidden;}
.logo .mark img{width:100%;height:100%;object-fit:cover;display:block;}
.logo .word{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.4rem;color:var(--navy-950);}
.logo .word span{color:var(--orange-600);}
.nav-links{display:flex;align-items:center;gap:26px;}
.nav-links a{font-weight:600;font-size:.93rem;color:var(--navy-900);padding:6px 0;border-bottom:2px solid transparent;}
.nav-links a:hover{color:var(--orange-600);}
.nav-links a.active{color:var(--orange-600);border-bottom-color:var(--orange-600);}
.nav-actions{display:flex;align-items:center;gap:14px;flex:none;}
.nav-call{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--navy-950);font-size:1rem;}
.nav-call svg{width:19px;height:19px;color:var(--orange-600);}
.nav-toggle{display:none;background:none;border:none;padding:6px;cursor:pointer;}
.nav-toggle svg{width:26px;height:26px;color:var(--navy-950);}
.nav-quote-mobile{display:none;}

@media(max-width:980px){
  .nav-links{position:fixed;top:0;right:-100%;height:100vh;width:78%;max-width:340px;background:var(--navy-950);flex-direction:column;align-items:flex-start;padding:100px 32px 32px;gap:6px;transition:right .25s ease;z-index:60;overflow-y:auto;}
  .nav-links.open{right:0;}
  .nav-links a{color:#DCE7F0;font-size:1.1rem;padding:12px 0;width:100%;border-bottom:1px solid rgba(255,255,255,0.08);}
  .nav-links a.active{color:var(--orange-500);border-bottom-color:transparent;}
  .nav-toggle{display:inline-flex;}
  .nav-actions .btn-primary{display:none;}
  .nav-call .label{display:none;}
  .nav-quote-mobile{display:block;margin-top:18px;background:var(--orange-600);color:var(--white)!important;text-align:center;padding:14px;font-weight:800;border:none;border-radius:var(--radius-sm);}
  .nav-scrim{display:none;position:fixed;inset:0;background:rgba(8,26,44,.55);z-index:55;}
  .nav-scrim.open{display:block;}
}

/* ---------- Hero (contained real photo, not full-bleed) ---------- */
.hero{position:relative;background:linear-gradient(120deg,var(--navy-950) 0%,var(--navy-800) 100%);color:var(--white);overflow:hidden;padding:56px 0;}
.hero .container{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--orange-500);font-weight:700;font-size:.92rem;margin-bottom:16px;}
.hero-eyebrow .dot{width:7px;height:7px;background:var(--orange-500);border-radius:50%;}
.hero h1{color:var(--white);margin-bottom:.45em;}
.hero-lead{font-size:1.1rem;color:#D4E0EC;max-width:52ch;margin-bottom:26px;}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.hero-badge{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:9px 14px;border-radius:999px;font-size:.85rem;font-weight:600;color:#EAF1F8;}
.hero-badge svg{width:16px;height:16px;color:var(--orange-500);flex:none;}
.hero-photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);border:4px solid rgba(255,255,255,.12);max-width:460px;margin:0 auto;}
.hero-photo img,.hero-photo video{width:100%;height:auto;display:block;max-height:430px;object-fit:cover;}

.quote-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:30px;color:var(--ink);}
.quote-card h3{font-size:1.2rem;margin-bottom:4px;}
.quote-card .sub{font-size:.88rem;color:var(--slate);margin-bottom:18px;}
.quote-card .form-row{grid-template-columns:1fr 1fr;}
.quote-card input{width:100%;}
.quote-card .form-note{text-align:center;}

@media(max-width:980px){
  .hero .container{grid-template-columns:1fr;}
  .hero-photo{order:-1;}
  .quote-card{max-width:440px;}
}

/* ---------- Trust bar ---------- */
.trust-bar{background:var(--navy-950);padding:22px 0;}
.trust-bar .container{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;}
.trust-item{display:flex;align-items:center;gap:10px;color:#DCE7F0;font-size:.9rem;font-weight:600;flex:1 1 200px;}
.trust-item svg{width:22px;height:22px;color:var(--orange-500);flex:none;}

/* ---------- Page header (non-home pages) ---------- */
.page-hero{position:relative;color:var(--white);overflow:hidden;padding:64px 0;}
.page-hero.no-photo{background:linear-gradient(120deg,var(--navy-950),var(--navy-800));}
.page-hero .hero-bg::after{background:linear-gradient(120deg, rgba(9,29,51,.93) 10%, rgba(10,37,64,.78) 100%);}
.page-hero .container{position:relative;z-index:1;max-width:820px;}
.page-hero h1{color:var(--white);}
.page-hero p{color:#D4E0EC;font-size:1.08rem;max-width:64ch;}
.breadcrumb{font-size:.85rem;color:#9FB4C7;margin-bottom:14px;}
.breadcrumb a{color:#9FB4C7;}
.breadcrumb a:hover{color:var(--orange-500);}

/* ---------- Grids ---------- */
.grid{display:grid;gap:26px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* ---------- Icon badge (circle) ---------- */
.icon-badge{width:52px;height:52px;border-radius:50%;background:var(--orange-100);color:var(--orange-600);display:flex;align-items:center;justify-content:center;flex:none;}
.icon-badge svg{width:26px;height:26px;}
.icon-badge.navy{background:var(--navy-950);color:var(--orange-500);}
.icon-badge.lg{width:64px;height:64px;}
.icon-badge.lg svg{width:32px;height:32px;}

/* ---------- Material swatch (fence type visual) ---------- */
.swatch{aspect-ratio:16/10;border-radius:var(--radius) var(--radius) 0 0;position:relative;overflow:hidden;}
.swatch img{width:100%;height:100%;object-fit:cover;}
.swatch-label{position:absolute;bottom:12px;left:14px;background:rgba(10,37,64,.82);color:var(--white);font-size:.72rem;font-weight:700;padding:5px 11px;border-radius:999px;letter-spacing:.02em;}
.swatch.wood{background:linear-gradient(160deg,#B98454 0%,#8C5A34 55%,#6E4525 100%);}
.swatch.wood::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,0.08) 0 3px,transparent 3px 34px);}
.swatch.vinyl{background:linear-gradient(160deg,#FFFFFF 0%,#E7EDF2 55%,#D3DCE3 100%);}
.swatch.vinyl::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(10,37,64,0.06) 0 2px,transparent 2px 48px);}
.swatch.aluminum{background:linear-gradient(160deg,#4B5A68 0%,#222E38 60%,#12181F 100%);}
.swatch.aluminum::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,0.10) 0 2px,transparent 2px 26px);}
.swatch.iron{background:linear-gradient(160deg,#3B2A22 0%,#1C1512 60%,#0E0B09 100%);}
.swatch.iron::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(242,166,35,0.12) 0 2px,transparent 2px 40px);}
.swatch.chainlink{background:linear-gradient(160deg,#C7D0D8 0%,#98A6B2 60%,#6E7C89 100%);}
.swatch.chainlink::before{content:"";position:absolute;inset:-20%;background-image:repeating-linear-gradient(45deg,rgba(10,37,64,.28) 0 2px,transparent 2px 22px),repeating-linear-gradient(-45deg,rgba(10,37,64,.28) 0 2px,transparent 2px 22px);}
.swatch.farm{background:linear-gradient(160deg,#C9B27C 0%,#9C8352 55%,#6F5A34 100%);}
.swatch.farm::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,0.10) 0 4px,transparent 4px 64px);}
.swatch.pool{background:linear-gradient(160deg,#BFE4F0 0%,#6FB9D2 55%,#3D89A8 100%);}
.swatch.pool::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,0.35) 0 2px,transparent 2px 22px);}
.swatch.security{background:linear-gradient(160deg,#2A3B4D 0%,#152331 60%,#0A1017 100%);}
.swatch.security::before{content:"";position:absolute;inset:-20%;background-image:repeating-linear-gradient(45deg,rgba(255,122,41,.16) 0 2px,transparent 2px 26px),repeating-linear-gradient(-45deg,rgba(255,122,41,.16) 0 2px,transparent 2px 26px);}
.swatch.kennel{background:linear-gradient(160deg,#7C8FA0 0%,#4C5C6C 60%,#2B3641 100%);}
.swatch.kennel::before{content:"";position:absolute;inset:-20%;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.14) 0 2px,transparent 2px 22px),repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 2px,transparent 2px 22px);}
.swatch.gatevisual{background:linear-gradient(160deg,#334A61 0%,#1B2E41 60%,#0F1D2B 100%);}
.swatch-photo{aspect-ratio:16/10;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;}
.swatch-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.type-row .swatch-photo{aspect-ratio:4/3;border-radius:var(--radius);}
.job-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line);}
.job-timeline{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--slate-light);font-weight:600;}
.job-timeline svg{width:15px;height:15px;}
.swatch.gate-swing{background:linear-gradient(160deg,#2E4560 0%,#17293C 60%,#0C1622 100%);}
.swatch.gate-swing::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,rgba(255,255,255,0.10) 0 3px,transparent 3px 30px);}
.swatch.gate-slide{background:linear-gradient(160deg,#2E4560 0%,#17293C 60%,#0C1622 100%);}
.swatch.gate-slide::before{content:"";position:absolute;left:0;right:0;bottom:22%;height:3px;background:rgba(255,133,54,.55);box-shadow:0 -14px 0 rgba(255,255,255,.12),0 14px 0 rgba(255,255,255,.12);}
.swatch.keypad-vis{background:linear-gradient(160deg,#222E38 0%,#12181F 100%);}
.swatch.keypad-vis::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.28) 2px,transparent 2.4px);background-size:16% 20%;background-position:center;}
.swatch.intercom-vis{background:radial-gradient(circle at 50% 45%,#2E4560 0%,#17293C 55%,#0C1622 100%);}
.swatch.intercom-vis::before{content:"";position:absolute;inset:0;border:2px solid rgba(255,255,255,.14);border-radius:50%;width:46%;height:46%;top:27%;left:27%;}
.swatch.card-vis{background:linear-gradient(160deg,#3A566F 0%,#1B2E41 60%,#0C1622 100%);}
.swatch.card-vis::before{content:"";position:absolute;inset:-10%;background-image:repeating-radial-gradient(circle at 30% 50%,rgba(255,133,54,.22) 0 2px,transparent 2px 14px);}
.swatch.solar-vis{background:linear-gradient(160deg,#4A6280 0%,#1E3349 55%,#0C1622 100%);}
.swatch.solar-vis::before{content:"";position:absolute;top:14%;right:14%;width:26%;height:26%;border-radius:50%;background:radial-gradient(circle,rgba(255,166,74,.85) 0%,rgba(255,166,74,0) 70%);}

/* ---------- Scroll reveal (dependency-free — page is fully visible if JS never runs) ---------- */
[data-aos].reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease;}
[data-aos="zoom-in"].reveal-ready{transform:scale(.94);}
[data-aos="fade-left"].reveal-ready{transform:translateX(24px);}
[data-aos].reveal-ready.in-view{opacity:1;transform:none;}

/* ---------- Spec cards (fence types) ---------- */
.spec-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;}
.spec-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.spec-card .body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px;flex:1;}
.spec-card .top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.spec-card h3{margin-bottom:0;}
.spec-card .price{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.05rem;color:var(--navy-950);white-space:nowrap;}
.spec-card .price small{display:block;font-weight:500;font-size:.68rem;color:var(--slate-light);}
.spec-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;font-size:.85rem;padding:14px 0;border-top:1px solid var(--line);margin-top:auto;}
.spec-list dt{color:var(--slate-light);margin:0;}
.spec-list dd{margin:0;font-weight:600;color:var(--navy-900);}
.spec-card .foot-link{font-weight:700;color:var(--orange-600);font-size:.92rem;display:inline-flex;align-items:center;gap:6px;}
.spec-card .foot-link svg{width:16px;height:16px;}

/* ---------- Process steps ---------- */
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative;}
.process::before{content:"";position:absolute;top:27px;left:9%;right:9%;height:2px;background:var(--line);z-index:0;}
.process .step{position:relative;z-index:1;text-align:left;}
.process .step .num{width:54px;height:54px;border-radius:50%;background:var(--navy-950);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.3rem;margin-bottom:18px;border:4px solid var(--white);box-shadow:0 0 0 2px var(--line);}
.process .step h3{font-size:1.1rem;margin-bottom:6px;}
.process .step p{font-size:.92rem;}
@media(max-width:980px){.process{grid-template-columns:repeat(2,1fr);gap:30px;}.process::before{display:none;}}
@media(max-width:640px){.process{grid-template-columns:1fr;}}

/* ---------- Segment / who-we-serve cards ---------- */
.segment-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;}
.segment-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.segment-card h3{font-size:1.4rem;}
.segment-card ul{display:flex;flex-direction:column;gap:9px;margin:6px 0 8px;}
.segment-card ul li{display:flex;gap:9px;font-size:.92rem;color:var(--slate);}
.segment-card ul li svg{width:17px;height:17px;flex:none;margin-top:2px;color:var(--orange-600);}
.segment-card .foot-link{margin-top:auto;font-weight:700;display:inline-flex;align-items:center;gap:8px;color:var(--orange-600);}
.segment-card .foot-link svg{width:18px;height:18px;}

/* ---------- Job / portfolio cards ---------- */
.job-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;}
.job-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.job-card.no-photo .job-body{padding-top:22px;}
.job-tag-plain{display:inline-block;background:var(--orange-100);color:var(--orange-700);font-size:.72rem;font-weight:800;padding:3px 10px;border-radius:999px;letter-spacing:.02em;margin-right:8px;vertical-align:middle;}
.job-media{aspect-ratio:4/3;position:relative;overflow:hidden;}
.job-media img{width:100%;height:100%;object-fit:cover;display:block;}
.job-media .swatch{position:absolute;inset:0;aspect-ratio:auto;border-radius:0;}
.job-tag{position:absolute;top:12px;left:12px;background:var(--orange-600);color:var(--white);font-size:.72rem;font-weight:700;padding:5px 11px;border-radius:999px;letter-spacing:.02em;z-index:2;}
.job-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1;}
.job-body h3{font-size:1.12rem;margin-bottom:0;}
.job-meta{font-size:.82rem;color:var(--slate-light);font-weight:600;}
.job-specs{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:.8rem;color:var(--slate);padding:10px 0;border-top:1px solid var(--line);}
.job-specs span{background:var(--paper);padding:4px 10px;border-radius:999px;font-weight:600;color:var(--navy-900);}
.job-price{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line);}
.job-price .amt{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.15rem;color:var(--navy-950);}
.job-price .amt small{font-family:'Inter',sans-serif;font-weight:500;font-size:.68rem;color:var(--slate-light);display:block;}

/* ---------- Stats strip (with counters) ---------- */
.stats-strip{background:var(--navy-950);padding:44px 0;}
.stats-strip .grid-4{gap:0;}
.stats-strip .stat{text-align:center;padding:10px 12px;}
.stats-strip .num{font-family:'Montserrat',sans-serif;font-weight:800;font-size:2.6rem;color:var(--orange-500);line-height:1;}
.stats-strip .lbl{color:#B8CADA;font-size:.9rem;margin-top:8px;}

/* ---------- Testimonials ---------- */
.testimonial-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm);}
.testimonial-card .stars{display:flex;gap:2px;color:var(--gold);}
.testimonial-card .stars svg{width:16px;height:16px;}
.testimonial-card p{color:var(--navy-900);font-size:.98rem;}
.testimonial-who{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:6px;}
.avatar-circle{width:42px;height:42px;border-radius:50%;background:var(--navy-950);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:700;font-size:.95rem;flex:none;}
.testimonial-who .name{font-weight:700;color:var(--navy-950);font-size:.9rem;}
.testimonial-who .loc{font-weight:500;color:var(--slate-light);font-size:.82rem;}

/* ---------- Video section ---------- */
.video-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/8;box-shadow:var(--shadow-md);}
.video-card img{width:100%;height:100%;object-fit:cover;}
.video-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,29,51,.75),rgba(9,29,51,.25));}
.video-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:2;color:var(--white);text-align:center;}
.play-btn{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px);transition:transform .2s ease,background .2s ease;}
.video-card:hover .play-btn{transform:scale(1.08);background:var(--orange-600);border-color:var(--orange-600);}
.play-btn svg{width:26px;height:26px;color:var(--white);margin-left:3px;}
.video-caption{font-weight:700;font-size:1.05rem;}
.video-caption small{display:block;font-weight:500;font-size:.85rem;color:#D4E0EC;margin-top:4px;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:20px 4px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font-family:'Montserrat',sans-serif;font-weight:600;font-size:1.05rem;color:var(--navy-950);}
.faq-q svg{width:20px;height:20px;flex:none;color:var(--orange-600);transition:transform .2s ease;}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:500px;}
.faq-a p{padding:0 4px 20px;}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg,var(--orange-600),var(--orange-700));color:var(--white);padding:56px 0;}
.cta-band .container{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.cta-band h2{color:var(--white);margin-bottom:6px;}
.cta-band p{color:#FFEBDA;margin-bottom:0;}
.cta-band .btn-primary{background:var(--navy-950);box-shadow:none;}
.cta-band .btn-primary:hover{background:var(--navy-800);}
.cta-band .btn-secondary{border-color:rgba(255,255,255,.5);}

/* ---------- Two-panel quote block ---------- */
.quote-block{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);}
.quote-panel{padding:40px;}
.quote-panel.call{background:var(--navy-950);color:var(--white);}
.quote-panel.call h3{color:var(--white);}
.quote-panel.call p{color:#B8CADA;}
.quote-panel.call .list-check li{color:var(--orange-500);}
.quote-panel.form{background:var(--white);}
.big-phone{font-family:'Montserrat',sans-serif;font-weight:800;font-size:2.3rem;color:var(--orange-500);display:block;margin:10px 0 18px;}
@media(max-width:900px){.quote-block{grid-template-columns:1fr;}}

/* ---------- Forms ---------- */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:.83rem;font-weight:700;color:var(--navy-900);}
.form-field input,.form-field select,.form-field textarea{border:1.5px solid var(--line);padding:12px 14px;font-family:'Inter',sans-serif;font-size:.95rem;background:var(--white);color:var(--ink);border-radius:var(--radius-sm);}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--orange-600);}
.form-note{font-size:.78rem;color:var(--slate-light);margin-top:10px;}
@media(max-width:640px){.form-row{grid-template-columns:1fr;}}
#form-success{display:none;background:var(--blue-100);border:1.5px solid var(--blue-600);color:var(--navy-900);padding:14px 16px;font-weight:600;margin-bottom:14px;border-radius:var(--radius-sm);font-size:.92rem;}
#form-success.show{display:block;}

/* ---------- Map ---------- */
.map-wrap{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line);}
.map-wrap iframe{width:100%;height:340px;border:0;display:block;}

/* ---------- Area / county page ---------- */
.area-body{display:grid;grid-template-columns:1.6fr 1fr;gap:44px;}
.area-body h2{font-size:1.5rem;}
.area-checklist{background:var(--paper);border-radius:var(--radius);padding:26px;align-self:start;position:sticky;top:96px;}
.area-checklist h4{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.05rem;margin-bottom:14px;color:var(--navy-950);}
.area-checklist ul{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.area-checklist ul li{display:flex;gap:8px;font-size:.9rem;color:var(--navy-900);}
.area-checklist ul li svg{width:16px;height:16px;color:var(--orange-600);flex:none;margin-top:3px;}
.area-pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.area-pill{font-size:.8rem;font-weight:700;background:var(--white);border:1px solid var(--line);padding:6px 13px;border-radius:999px;color:var(--navy-900);}
@media(max-width:900px){.area-body{grid-template-columns:1fr;}.area-checklist{position:static;}}

.area-chip-grid{display:flex;flex-wrap:wrap;gap:10px;}
.area-chip{font-size:.85rem;font-weight:700;border:1px solid var(--line);padding:10px 18px;border-radius:999px;color:var(--navy-900);transition:all .15s ease;}
.area-chip:hover{border-color:var(--orange-600);color:var(--orange-600);background:var(--orange-100);}
.area-chip.small{font-size:.78rem;font-weight:600;padding:7px 14px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950);color:#9FB3C4;padding:64px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1);}
.footer-grid h4{color:var(--white);font-family:'Montserrat',sans-serif;font-weight:700;font-size:1rem;margin-bottom:16px;}
.footer-grid ul{display:flex;flex-direction:column;gap:10px;font-size:.92rem;}
.footer-grid ul a:hover{color:var(--orange-500);}
.footer-about .logo .word{color:var(--white);}
.footer-about .logo .mark{border-radius:50%;}
.footer-about p{color:#8FA6BA;margin:14px 0 18px;max-width:32ch;}
.footer-contact-item{display:flex;gap:10px;margin-bottom:12px;font-size:.92rem;}
.footer-contact-item svg{width:18px;height:18px;color:var(--orange-500);flex:none;margin-top:2px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font-size:.82rem;color:#6E869B;flex-wrap:wrap;gap:10px;}
.footer-bottom a:hover{color:var(--orange-500);}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- Detail rows (fence types / gates & access) ---------- */
.type-row{padding:0 0 48px;margin-bottom:48px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:280px 1fr;gap:34px;}
.type-row:last-child{border-bottom:none;margin-bottom:0;}
.type-row .swatch{aspect-ratio:4/3;border-radius:var(--radius);}
.type-content h2{font-size:1.5rem;margin-bottom:10px;}
.type-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px;}
.price-lg{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.2rem;color:var(--navy-950);white-space:nowrap;text-align:right;}
.price-lg small{display:block;font-weight:500;font-size:.7rem;color:var(--slate-light);}
.link-arrow{font-weight:700;color:var(--orange-600);display:inline-flex;align-items:center;gap:8px;font-size:.95rem;}
.link-arrow svg{width:18px;height:18px;}
.link-arrow:hover{color:var(--orange-700);}
.spec-list.wide{grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:none;padding:16px 0;}
@media(max-width:800px){.type-row{grid-template-columns:1fr;}.spec-list.wide{grid-template-columns:1fr;}}

/* ---------- Misc ---------- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
@media(max-width:900px){.two-col{grid-template-columns:1fr;}}
.list-check{display:flex;flex-direction:column;gap:13px;margin:18px 0;}
.list-check li{display:flex;gap:11px;font-size:.98rem;color:var(--navy-900);}
.list-check li svg{width:19px;height:19px;color:var(--orange-600);flex:none;margin-top:3px;}
.note-box{background:var(--blue-100);border-left:4px solid var(--blue-600);padding:18px 22px;font-size:.92rem;color:var(--navy-900);border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.note-box strong{color:var(--navy-950);}
.photo-frame{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:1/1;}
.photo-frame img{width:100%;height:100%;object-fit:cover;}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}
