/* FJ Luxury — main stylesheet (no framework) */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#0A1628;background:#fff;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:transparent;color:inherit}
ul,ol{padding-left:0;list-style:none;margin:0}
p{margin:0}
:root{
  --navy:#0A1628; --navy-2:#0F1F3A; --gold:#C9A96E; --gold-light:#E8D5A3; --gold-dark:#B8954F; --off-white:#FAFAF8;
  --gray-100:#f3f4f6; --gray-200:#e5e7eb; --gray-300:#d1d5db; --gray-400:#9ca3af; --gray-500:#6b7280; --gray-600:#4b5563; --gray-700:#374151;
}
.bold{font-weight:600}
.gold{color:var(--gold)}
.gold-strong{color:var(--gold);font-weight:600}
.break{word-break:break-all}
.skip-link{position:absolute;left:-9999px;top:0}
.skip-link:focus{position:fixed;left:1rem;top:1rem;z-index:200;background:var(--gold);color:var(--navy);padding:.5rem 1rem;border-radius:.5rem;font-weight:600}

/* Container */
.container{max-width:1280px;margin-inline:auto;padding-inline:1.5rem}
.container-narrow{max-width:780px}
.container-wide{max-width:1280px}

/* ========== NAV ========== */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(10,22,40,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .3s}
.nav-inner{max-width:1280px;margin-inline:auto;display:flex;height:80px;align-items:center;justify-content:space-between;padding-inline:1.5rem}
.brand{display:flex;align-items:center;gap:.625rem}
.brand-logo{height:32px;width:32px;object-fit:contain}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gold);color:var(--navy);font-weight:800;font-size:14px;border-radius:6px;letter-spacing:.05em}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font-size:1rem;font-weight:600;letter-spacing:.1em;color:#fff}
.brand-name-lg{font-size:1.25rem}
.brand-sub{font-size:10px;text-transform:uppercase;letter-spacing:.35em;color:rgba(201,169,110,.6);margin-top:2px}
.nav-links{display:none;align-items:center;gap:2rem}
.nav-link{font-size:.875rem;font-weight:500;letter-spacing:.015em;color:rgba(255,255,255,.7);transition:color .2s}
.nav-link:hover{color:var(--gold)}
.mobile-toggle{padding:.5rem;color:rgba(255,255,255,.8)}
.mobile-toggle:hover{color:#fff}
.mobile-menu{border-top:1px solid rgba(255,255,255,.05);background:var(--navy)}
.mobile-menu[hidden]{display:none}
.mobile-menu-inner{max-width:1280px;margin-inline:auto;display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.5rem}
.mobile-link{padding:.75rem;font-size:.875rem;font-weight:500;color:rgba(255,255,255,.7);border-radius:.375rem}
.mobile-link:hover{background:rgba(255,255,255,.05);color:var(--gold)}
@media (min-width:768px){
  .nav-links{display:flex}
  .mobile-toggle{display:none}
  .mobile-menu{display:none!important}
}

/* ========== BUTTONS ========== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:9999px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:var(--gold-dark)}
.btn-ghost{border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:500}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-sm{padding:.625rem 1.25rem;font-size:.875rem}
.btn-xs{padding:.5rem 1rem;font-size:.75rem;font-weight:600}
@media(min-width:640px){.btn-xs{padding:.5rem 1.25rem;font-size:.875rem}}
.btn-lg{padding:1rem 2rem;font-size:.875rem;font-weight:600}
.btn-block{width:100%}

/* ========== HERO ========== */
.hero{position:relative;display:flex;min-height:100vh;align-items:center;justify-content:center;overflow:hidden;background:var(--navy);padding-top:80px}
.hero-bg{position:absolute;inset:0}
.hero-bg img,.hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,40,.8) 0%,rgba(10,22,40,.6) 50%,var(--navy) 100%)}
.hero-glow{position:absolute;border-radius:9999px;filter:blur(80px);pointer-events:none}
.hero-glow-1{left:2.5rem;top:5rem;height:18rem;width:18rem;background:rgba(201,169,110,.1)}
.hero-glow-2{bottom:5rem;right:2.5rem;height:24rem;width:24rem;background:rgba(201,169,110,.05)}
.hero-inner{position:relative;z-index:10;max-width:1280px;margin-inline:auto;padding:8rem 1.5rem;text-align:center}
.badge{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:1px solid rgba(201,169,110,.3);background:rgba(255,255,255,.05);padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:var(--gold)}
.badge-dot{height:6px;width:6px;border-radius:9999px;background:var(--gold)}
.badge-static{padding:.5rem 1rem;font-size:.75rem;background:rgba(201,169,110,.1)}
.hero-title{margin:2rem 0 0;color:#fff;font-weight:300;line-height:1.05;letter-spacing:-.02em}
.hero-h1-a{display:block;font-size:3rem}
.hero-h1-b{display:block;font-weight:600;background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-h1-c{display:block;margin-top:.5rem;font-size:2.25rem;font-weight:200;letter-spacing:.2em}
@media(min-width:768px){.hero-h1-a{font-size:4.5rem}.hero-h1-c{font-size:3rem}}
@media(min-width:1024px){.hero-h1-a{font-size:6rem}.hero-h1-c{font-size:3.75rem}}
.hero-h1-b{font-size:3.5rem}
@media(min-width:768px){.hero-h1-b{font-size:5rem}}
@media(min-width:1024px){.hero-h1-b{font-size:6.5rem}}
.hero-blurb{margin:2rem auto 0;max-width:42rem;font-size:1.125rem;font-weight:300;line-height:1.65;color:rgba(255,255,255,.7)}
@media(min-width:768px){.hero-blurb{font-size:1.25rem}}
.hero-cta{margin-top:3rem;display:flex;flex-direction:column;align-items:center;gap:1rem;justify-content:center}
@media(min-width:640px){.hero-cta{flex-direction:row}}
.hero-stats{margin:5rem auto 0;max-width:32rem;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.stat{text-align:center}
.stat-n{font-size:1.5rem;font-weight:600;color:var(--gold)}
@media(min-width:768px){.stat-n{font-size:1.875rem}}
.stat-l{margin-top:.25rem;font-size:.75rem;letter-spacing:.025em;color:rgba(255,255,255,.5)}
@media(min-width:768px){.stat-l{font-size:.875rem}}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%)}
.scroll-cue-inner{display:flex;height:2.5rem;width:1.5rem;justify-content:center;border-radius:9999px;border:2px solid rgba(255,255,255,.2);padding-top:.5rem}
.scroll-cue-dot{height:.5rem;width:.25rem;border-radius:9999px;background:var(--gold)}

/* ========== SECTION FRAMES ========== */
.section{padding:6rem 0}
@media(min-width:768px){.section{padding:8rem 0}}
.section-white{background:#fff}
.section-off-white{background:var(--off-white)}
.section-navy{position:relative;overflow:hidden;background:var(--navy)}
.section-head{margin-bottom:5rem;text-align:center}
.eyebrow{font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.3em;color:var(--gold)}
.section-h{margin:1rem 0 0;font-size:2.25rem;font-weight:300;line-height:1.1;letter-spacing:-.02em;color:var(--navy)}
@media(min-width:768px){.section-h{font-size:3rem}}
.section-h-white{color:#fff}
.section-h .bold{font-weight:600}
.rule{margin:1.5rem auto 0;height:2px;width:4rem;background:var(--gold)}
.section-intro{margin:1.5rem auto 0;max-width:42rem;font-size:1rem;line-height:1.65;color:var(--gray-500)}

/* Background glows for navy sections */
.bg-glow{position:absolute;border-radius:9999px;filter:blur(80px);pointer-events:none}
.bg-glow-tr{right:0;top:0;height:500px;width:500px;background:rgba(201,169,110,.05)}
.bg-glow-bl{bottom:0;left:0;height:400px;width:400px;background:rgba(201,169,110,.03)}

/* Grids */
.grid{display:grid;gap:2rem}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
.grid-4{grid-template-columns:1fr}
@media(min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}

/* ========== SERVICE CARDS ========== */
.card-service{position:relative;overflow:hidden;border-radius:1rem;border:1px solid var(--gray-100);background:var(--off-white);transition:transform .5s,border-color .3s,box-shadow .3s}
.card-service:hover{transform:translateY(-4px);border-color:rgba(201,169,110,.3);box-shadow:0 20px 40px -10px rgba(0,0,0,.15)}
.card-service a{display:block}
.card-img{position:relative;height:12rem;overflow:hidden;background:var(--navy)}
.card-img img{height:100%;width:100%;object-fit:cover;transition:transform .7s}
.card-service:hover .card-img img{transform:scale(1.05)}
.card-img-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,22,40,.7) 0%,rgba(10,22,40,.2) 50%,transparent 100%)}
.card-body{padding:1.5rem}
.card-body h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--navy);transition:color .2s}
.card-service:hover .card-body h3{color:var(--gold)}
.card-body p{margin-bottom:1rem;font-size:.875rem;line-height:1.6;color:var(--gray-500)}
.bullets-sm{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}
.bullets-sm li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gray-600)}
.dot-gold-sm{height:6px;width:6px;border-radius:9999px;background:var(--gold)}
.dot-gold{height:8px;width:8px;border-radius:9999px;background:var(--gold)}
.card-more{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--gold);transition:gap .2s}
.card-service:hover .card-more{gap:.75rem}

/* ========== ABOUT ========== */
.about-grid{display:grid;gap:4rem;align-items:center}
@media(min-width:1024px){.about-grid{grid-template-columns:repeat(2,1fr)}}
.about-img-wrap{position:relative}
.about-img{position:relative;overflow:hidden;border-radius:1rem;aspect-ratio:4/5}
.about-img img{height:100%;width:100%;object-fit:cover}
.about-img-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,22,40,.5),transparent)}
.about-badge{position:absolute;bottom:-1.5rem;right:-1.5rem;background:var(--gold);padding:1.5rem;border-radius:1rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.about-badge-n{font-size:1.875rem;font-weight:700;color:var(--navy)}
.about-badge-l{font-size:.875rem;font-weight:500;color:rgba(10,22,40,.7);line-height:1.2}
.about-p1{margin-top:1.5rem;font-size:1.125rem;line-height:1.65;color:rgba(255,255,255,.6)}
.about-p2{margin-top:1rem;line-height:1.65;color:rgba(255,255,255,.5)}
.values{margin-top:3rem;display:grid;gap:1.5rem;grid-template-columns:1fr}
@media(min-width:640px){.values{grid-template-columns:repeat(2,1fr)}}
.value{display:flex;align-items:flex-start;gap:1rem}
.value-ico{border-radius:.75rem;border:1px solid rgba(201,169,110,.2);background:rgba(201,169,110,.1);padding:.625rem;transition:background .2s}
.value:hover .value-ico{background:rgba(201,169,110,.2)}
.value h3{margin:0;font-size:.875rem;font-weight:500;color:#fff}
.value p{margin-top:.25rem;font-size:.875rem;line-height:1.6;color:rgba(255,255,255,.4)}

/* ========== PROCESS ========== */
.process{gap:2rem}
.step{position:relative;text-align:center}
.step-line{position:absolute;left:60%;top:3rem;height:1px;width:80%;background:linear-gradient(90deg,rgba(201,169,110,.3),transparent);display:none}
@media(min-width:1024px){.step-line{display:block}}
.step-ico{position:relative;display:inline-flex;height:6rem;width:6rem;align-items:center;justify-content:center;border-radius:1rem;background:var(--off-white);transition:background .2s}
.step:hover .step-ico{background:rgba(201,169,110,.1)}
.step-n{position:absolute;right:-.5rem;top:-.5rem;display:flex;height:1.75rem;width:1.75rem;align-items:center;justify-content:center;border-radius:9999px;background:var(--navy);font-size:.75rem;font-weight:700;color:#fff}
.step-t{margin:1.5rem 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--navy)}
.step-d{margin:0 auto;max-width:240px;font-size:.875rem;line-height:1.6;color:var(--gray-500)}

/* ========== TESTIMONIALS ========== */
.testimonial{margin:0;border-radius:1rem;border:1px solid var(--gray-100);background:#fff;padding:2rem;transition:border-color .3s,box-shadow .3s}
.testimonial:hover{border-color:rgba(201,169,110,.2);box-shadow:0 10px 30px -5px rgba(0,0,0,.1)}
.stars{margin-bottom:1rem;display:flex;gap:.25rem}
.testimonial blockquote{margin:0 0 1.5rem;font-style:italic;line-height:1.65;color:var(--gray-700)}
.testimonial figcaption{display:flex;align-items:center;gap:.75rem}
.avatar{display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:9999px;background:var(--navy)}
.avatar span{font-size:.875rem;font-weight:600;color:#fff}
.t-name{font-size:.875rem;font-weight:600;color:var(--navy)}
.t-role{font-size:.75rem;color:var(--gray-400)}

/* ========== CONTACT ========== */
.contact-grid{display:grid;gap:4rem}
@media(min-width:1024px){.contact-grid{grid-template-columns:repeat(2,1fr)}}
.contact-intro{margin-top:1.5rem;line-height:1.65;color:var(--gray-500)}
.contact-list{margin-top:3rem;display:flex;flex-direction:column;gap:1.5rem}
.contact-row{display:flex;align-items:center;gap:1rem}
.contact-ico{display:flex;height:3rem;width:3rem;align-items:center;justify-content:center;border-radius:.75rem;background:var(--navy)}
.contact-lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;color:var(--gray-400)}
.contact-val{font-weight:500;color:var(--navy)}
.contact-val a:hover{color:var(--gold)}
.contact-val .sep{color:var(--gray-300);margin:0 .25rem}
.contact-note{margin-top:3rem;border-radius:1rem;border:1px solid var(--gray-100);background:var(--off-white);padding:1.5rem}
.contact-note p{font-size:.875rem;line-height:1.65;color:var(--gray-500)}
.note-strong{font-weight:600;color:var(--navy)}
.contact-mini-list{margin-top:2rem;display:flex;flex-direction:column;gap:1rem;font-size:.875rem}
.contact-mini-list li{display:flex;align-items:center;gap:.75rem}
.contact-mini-list a:hover{color:var(--gold)}

/* ========== CONTACT FORM ========== */
.contact-form{display:flex;flex-direction:column;gap:1.25rem;border-radius:1rem;border:1px solid var(--gray-100);background:var(--off-white);padding:1.5rem}
@media(min-width:768px){.contact-form{padding:2rem}}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.grid-2-form{display:grid;gap:1.25rem}
@media(min-width:640px){.grid-2-form{grid-template-columns:repeat(2,1fr)}}
.form-row{display:flex;flex-direction:column}
.form-row label{margin-bottom:.375rem;font-size:.875rem;font-weight:500;color:var(--navy)}
.form-row input,.form-row textarea,.form-row select{width:100%;border-radius:.375rem;border:1px solid var(--gray-200);background:#fff;padding:.625rem .75rem;font-size:.875rem;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:border-color .2s,box-shadow .2s;font-family:inherit;color:var(--navy)}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,169,110,.3)}
.form-row textarea{resize:vertical;min-height:120px}
.form-foot{font-size:.75rem;color:var(--gray-500);margin:0}

/* ========== FOOTER ========== */
.site-footer{border-top:1px solid rgba(255,255,255,.05);background:var(--navy);padding:4rem 0}
.footer-inner{max-width:1280px;margin-inline:auto;padding-inline:1.5rem}
.footer-grid{display:grid;gap:3rem;grid-template-columns:1fr}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(4,1fr)}}
.footer-brand{grid-column:span 1}
@media(min-width:768px){.footer-brand{grid-column:span 2}}
.brand-footer{margin-bottom:1rem}
.footer-blurb{margin-top:1rem;max-width:24rem;font-size:.875rem;line-height:1.65;color:rgba(255,255,255,.4)}
.footer-h{margin:0 0 1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:#fff}
.footer-list{display:flex;flex-direction:column;gap:.75rem;font-size:.875rem;color:rgba(255,255,255,.4)}

/* ---- Real job photos inside a service page (client request 2026-08-27) ---- */
.service-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,190px));justify-content:center;align-items:start;gap:14px;margin:1.35rem auto 0;}
.service-photos figure{margin:0;}
.service-photos figure img{width:100%;height:auto;display:block;border-radius:16px;background:#0e1726;}
.service-photos figcaption{font-size:.75rem;line-height:1.45;color:#7A8090;margin-top:.5rem;text-align:center;}
@media(max-width:520px){.service-photos{grid-template-columns:repeat(2,1fr);}}
