/* ============================================================
 RESET + BASE
 ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
 font-family:'Plus Jakarta Sans',sans-serif;
 background:#1f1512;
 color:#e8e4dc;
 overflow-x:hidden;
 -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:inherit}
ul{list-style:none}

/* ============================================================
 DESIGN TOKENS
 ============================================================ */
:root{
 --navy: #1f1512;
 --navy-mid: #291c17;
 --navy-card:#33241e;
 --gold: #c48371;
 --gold-lt: #e7b6a3;
 --white: #f5f1eb;
 --terra: #cf6c5c;
 --graphite: #a3928a;
 --serif: 'Playfair Display',Georgia,serif;
 --sans: 'Plus Jakarta Sans',system-ui,sans-serif;
 --radius: 6px;
 --transition: cubic-bezier(.19,1,.22,1);
}

/* ============================================================
 MOTION SYSTEM
 ============================================================ */
@media (prefers-reduced-motion: no-preference){
 .anim-ready .reveal{
 opacity:0;
 transform:translateY(26px);
 transition:opacity .7s var(--transition), transform .7s var(--transition);
 }
 .anim-ready .reveal.visible{opacity:1;transform:none}

 /* stagger siblings */
 .anim-ready .reveal:nth-child(2){transition-delay:.1s}
 .anim-ready .reveal:nth-child(3){transition-delay:.2s}
 .anim-ready .reveal:nth-child(4){transition-delay:.3s}
 .anim-ready .reveal:nth-child(5){transition-delay:.4s}
 .anim-ready .reveal:nth-child(6){transition-delay:.48s}

 /* Hero load-in keyframes */
 @keyframes heroRise{
 from{opacity:0;transform:translateY(22px)}
 to {opacity:1;transform:none}
 }
 .hero-kicker {animation:heroRise .7s var(--transition) .1s both}
 .hero-headline{animation:heroRise .8s var(--transition) .22s both}
 .hero-sub {animation:heroRise .8s var(--transition) .38s both}
 .hero-ctas {animation:heroRise .8s var(--transition) .52s both}
 .hero-badge {animation:heroRise .8s var(--transition) .64s both}

 /* Gold wipe decoration on section entries */
 @keyframes wipeIn{from{width:0}to{width:60px}}
 .section-rule::after{animation:wipeIn .8s var(--transition) .3s both}

 /* Stat counter pulse */
 @keyframes countPulse{0%{opacity:.3;transform:scale(.92)}100%{opacity:1;transform:scale(1)}}
 .stat-num.counting{animation:countPulse .4s var(--transition) both}

 /* Scroll progress bar */
 @supports (animation-timeline: scroll()){
 #scroll-progress{
 animation:grow-bar linear;
 animation-timeline:scroll();
 }
 @keyframes grow-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 }
}

/* ============================================================
 SCROLL PROGRESS BAR
 ============================================================ */
#scroll-progress{
 position:fixed;top:0;left:0;width:100%;height:3px;
 background:var(--gold);
 transform-origin:left;
 z-index:9999;
 pointer-events:none;
}

/* ============================================================
 MOCK BANNER
 ============================================================ */
#mock-banner{
 background:#111;
 padding:9px 16px;
 display:flex;
 align-items:center;
 justify-content:center;
 gap:12px;
 flex-wrap:wrap;
 position:relative;
 z-index:200;
}
#mock-banner .mock-label{color:#888;font-size:10px;letter-spacing:1.8px;text-transform:uppercase;font-family:var(--sans)}
#mock-banner .mock-note{color:#555;font-size:10px;font-family:var(--sans);letter-spacing:.3px}

/* ============================================================
 STICKY HEADER
 ============================================================ */
#site-header{
 position:sticky;top:0;
 background:rgba(31,21,18,.88);
 backdrop-filter:blur(14px);
 -webkit-backdrop-filter:blur(14px);
 z-index:190;
 border-bottom:1px solid rgba(196,131,113,.18);
 transition:background .3s ease;
}
.header-inner{
 max-width:1280px;margin:0 auto;
 padding:0 20px;
 display:flex;align-items:center;justify-content:space-between;
 height:64px;gap:16px;
}
.logo-wrap img{height:38px;width:auto}
nav.main-nav{
 display:none;
 gap:28px;
}
nav.main-nav a{
 font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
 color:rgba(245,241,235,.75);
 transition:color .25s ease;
}
nav.main-nav a:hover{color:var(--gold)}
@media(min-width:900px){nav.main-nav{display:flex}}

.header-right{display:flex;align-items:center;gap:10px}
.lang-toggle{display:flex;gap:4px;background:rgba(255,255,255,.07);border-radius:30px;padding:3px}
.lang-btn{
 background:none;border:none;color:rgba(245,241,235,.55);
 font-size:.72rem;font-weight:700;letter-spacing:.1em;
 padding:5px 11px;border-radius:30px;
 transition:background .2s,color .2s;
}
.lang-btn[aria-pressed="true"]{background:var(--gold);color:var(--navy)}
.cta-header{
 display:none;
 background:var(--gold);color:var(--navy);
 font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
 padding:10px 20px;border-radius:var(--radius);
 border:none;
 transition:background .25s,transform .2s;
}
.cta-header:hover{background:var(--gold-lt);transform:translateY(-1px)}
@media(min-width:600px){.cta-header{display:block}}

/* mobile hamburger */
.hamburger{
 display:flex;flex-direction:column;gap:5px;background:none;border:none;
 padding:8px;
}
@media(min-width:900px){.hamburger{display:none}}
.hamburger span{display:block;width:22px;height:2px;background:var(--white);border-radius:2px;transition:.3s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile nav drawer */
#mobile-nav{
 display:none;position:fixed;top:0;left:0;width:100%;height:100%;
 background:rgba(31,21,18,.97);z-index:180;
 flex-direction:column;align-items:center;justify-content:center;gap:28px;
}
#mobile-nav.open{display:flex}
#mobile-nav a{font-size:1.4rem;font-weight:700;letter-spacing:.04em;color:var(--white);text-transform:uppercase}
#mobile-nav a:hover{color:var(--gold)}
#mobile-nav .close-btn{position:absolute;top:24px;right:24px;background:none;border:none;color:var(--white);font-size:2rem}

/* ============================================================
 HERO
 ============================================================ */
.hero{
 position:relative;
 min-height:68vh;
 display:flex;align-items:center;
 overflow:hidden;
}
@media(min-width:768px){.hero{min-height:82vh}}

/* hero: deep navy stage with a warm gold glow behind Jessica's portrait */
.hero-bg{
 position:absolute;inset:0;
 background:
 radial-gradient(900px 620px at 78% 42%, rgba(196,131,113,.18), transparent 62%),
 linear-gradient(110deg, #1f1512 32%, #2a1c16 72%, #382419 100%);
 z-index:0;
}

/* two-column hero: copy left, portrait right (stacks on mobile) */
.hero-content{display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.hero-copy{flex:1 1 520px;min-width:0}
.hero-portrait{flex:0 1 360px;margin:0 auto;position:relative}
.hero-portrait img{
 width:100%;max-width:400px;display:block;border-radius:18px;
 box-shadow:0 30px 70px rgba(0,0,0,.55);
 border:1px solid rgba(196,131,113,.4);
}
.hero-portrait-tag{
 position:absolute;left:16px;bottom:16px;
 background:rgba(31,21,18,.86);backdrop-filter:blur(6px);
 border:1px solid rgba(196,131,113,.45);border-radius:10px;
 padding:10px 14px;display:flex;flex-direction:column;gap:2px;
}
.hero-portrait-tag strong{color:#fff;font-size:.95rem}
.hero-portrait-tag span{color:rgba(255,255,255,.72);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}
@media(max-width:767px){.hero-portrait{flex-basis:280px}}

/* Film grain */
.hero-grain{
 position:absolute;inset:0;z-index:1;
 pointer-events:none;
 opacity:.055;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
 background-size:180px 180px;
}

.hero-content{
 position:relative;z-index:2;
 max-width:1280px;margin:0 auto;
 padding:80px 24px 80px;
 width:100%;
}
@media(min-width:768px){.hero-content{padding:100px 48px 100px}}

.hero-kicker{
 display:inline-flex;align-items:center;gap:10px;
 font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
 color:var(--gold);
 margin-bottom:20px;
}
.hero-kicker::before{content:'';display:block;width:28px;height:2px;background:var(--gold)}

.hero-headline{
 font-family:var(--serif);
 font-size:clamp(2.4rem,7.5vw,5.2rem);
 font-weight:900;
 line-height:1.03;
 letter-spacing:-.02em;
 color:var(--white);
 max-width:720px;
 margin-bottom:22px;
}
.hero-headline .accent{color:var(--gold)}
.hero-headline em{font-style:italic;color:var(--gold-lt)}

.hero-sub{
 font-size:clamp(.95rem,2.2vw,1.15rem);
 font-weight:400;
 color:rgba(245,241,235,.78);
 max-width:540px;
 line-height:1.65;
 margin-bottom:36px;
}

.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:40px}
.btn-primary{
 display:inline-flex;align-items:center;gap:8px;
 background:var(--gold);color:var(--navy);
 font-size:.9rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
 padding:15px 28px;border-radius:var(--radius);border:none;
 transition:background .25s var(--transition),transform .2s;
 min-height:48px;
}
.btn-primary:hover{background:var(--gold-lt);transform:translateY(-2px)}
.btn-secondary{
 display:inline-flex;align-items:center;gap:8px;
 background:transparent;color:var(--white);
 font-size:.9rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
 padding:14px 26px;border-radius:var(--radius);
 border:1.5px solid rgba(245,241,235,.35);
 transition:border-color .25s,color .25s,transform .2s;
 min-height:48px;
}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}

.hero-badge{
 display:flex;align-items:center;gap:14px;
 background:rgba(255,255,255,.06);
 border:1px solid rgba(196,131,113,.22);
 border-radius:8px;padding:12px 18px;
 max-width:360px;
}
.hero-badge .stars{color:var(--gold);font-size:1rem;letter-spacing:2px}
.hero-badge .badge-text{font-size:.78rem;line-height:1.45;color:rgba(245,241,235,.8)}
.hero-badge .badge-text strong{display:block;color:var(--white);font-weight:700;font-size:.85rem}

/* ============================================================
 SECTION SHARED
 ============================================================ */
.section{padding:88px 24px}
@media(min-width:768px){.section{padding:108px 48px}}
.container{max-width:1280px;margin:0 auto}

.section-label{
 font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
 color:var(--gold);
 display:flex;align-items:center;gap:10px;
 margin-bottom:16px;
}
.section-label::before{content:'';display:block;width:28px;height:2px;background:var(--gold)}

.section-heading{
 font-family:var(--serif);
 font-size:clamp(1.9rem,4.5vw,3.4rem);
 font-weight:900;line-height:1.08;letter-spacing:-.02em;
 color:var(--white);
 margin-bottom:16px;
}
.section-heading .accent{color:var(--gold)}

.section-body{
 font-size:1rem;line-height:1.7;
 color:rgba(245,241,235,.72);
 max-width:560px;
}

/* Gold rule decoration */
.section-rule{display:block;height:2px;background:rgba(196,131,113,.18);margin:56px 0;position:relative;overflow:visible}
.section-rule::after{content:'';position:absolute;left:0;top:0;height:2px;width:60px;background:var(--gold)}

/* ============================================================
 MARQUEE RIBBON
 ============================================================ */
.marquee-wrap{
 background:var(--gold);
 padding:13px 0;
 overflow:hidden;
 white-space:nowrap;
}
@media(prefers-reduced-motion:no-preference){
 @keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
 .marquee-track{display:inline-block;animation:marqueeScroll 28s linear infinite}
}
@media(prefers-reduced-motion:reduce){
 .marquee-track{white-space:normal;text-align:center;display:block}
}
.marquee-track{
 font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
 color:var(--navy);
}
.marquee-sep{display:inline-block;margin:0 18px;opacity:.4}

/* ============================================================
 ABOUT / JESSICA SECTION
 ============================================================ */
.about-grid{
 display:grid;
 grid-template-columns:1fr;
 gap:48px;
 align-items:center;
}
@media(min-width:900px){
 .about-grid{grid-template-columns:5fr 7fr;gap:72px}
}
.about-photo-wrap{
 position:relative;
 max-width:500px;
 margin:0 auto;
}
.about-photo-wrap img{
 width:100%;border-radius:4px;
 filter:contrast(1.05) saturate(1.1);
}
.about-photo-accent{
 position:absolute;
 top:-14px;left:-14px;
 width:80px;height:80px;
 border:3px solid var(--gold);
 border-radius:4px;
 z-index:-1;
}
.about-photo-award{
 position:absolute;
 bottom:20px;right:-16px;
 background:var(--gold);
 color:var(--navy);
 font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
 padding:10px 14px;border-radius:var(--radius);
 max-width:160px;line-height:1.4;
 text-align:center;
}
@media(max-width:480px){.about-photo-award{right:8px;font-size:.62rem}}

.about-copy .section-body{max-width:100%}
.about-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.about-tag{
 font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
 color:var(--gold);
 border:1px solid rgba(196,131,113,.3);
 padding:6px 13px;border-radius:30px;
}

/* ============================================================
 QUIZ SECTION (Lead Tech Feature)
 ============================================================ */
.quiz-section{
 background:var(--navy-mid);
 padding:88px 24px;
}
@media(min-width:768px){.quiz-section{padding:108px 48px}}
.quiz-wrap{
 max-width:720px;margin:0 auto;
}
.quiz-card{
 background:var(--navy-card);
 border:1px solid rgba(196,131,113,.2);
 border-radius:12px;
 padding:40px 32px;
 margin-top:40px;
}
@media(min-width:600px){.quiz-card{padding:52px 48px}}

.quiz-progress-bar{
 height:4px;background:rgba(255,255,255,.08);
 border-radius:2px;margin-bottom:36px;overflow:hidden;
}
.quiz-progress-fill{
 height:100%;background:var(--gold);
 border-radius:2px;
 transition:width .5s var(--transition);
}
.quiz-step{display:none}
.quiz-step.active{display:block}

.quiz-q{
 font-family:var(--serif);
 font-size:clamp(1.15rem,2.8vw,1.5rem);
 font-weight:700;line-height:1.3;
 color:var(--white);margin-bottom:8px;
}
.quiz-hint{font-size:.83rem;color:var(--graphite);margin-bottom:28px;line-height:1.5}

.quiz-options{display:flex;flex-direction:column;gap:10px}
.quiz-opt{
 display:flex;align-items:center;gap:14px;
 background:rgba(255,255,255,.04);
 border:1.5px solid rgba(255,255,255,.1);
 border-radius:8px;padding:14px 18px;
 cursor:pointer;
 font-size:.9rem;font-weight:500;color:rgba(245,241,235,.85);
 transition:border-color .2s,background .2s;
 text-align:left;width:100%;
 min-height:52px;
}
.quiz-opt:hover,.quiz-opt.selected{border-color:var(--gold);background:rgba(196,131,113,.1);color:var(--white)}
.quiz-opt-icon{font-size:1.1rem;flex-shrink:0}
.quiz-nav{display:flex;justify-content:flex-end;margin-top:28px;gap:12px}
.quiz-back{
 background:none;border:1px solid rgba(255,255,255,.15);
 color:rgba(245,241,235,.6);font-size:.82rem;font-weight:600;
 padding:11px 20px;border-radius:var(--radius);
 transition:border-color .2s,color .2s;
}
.quiz-back:hover{border-color:var(--gold);color:var(--gold)}
.quiz-next{
 background:var(--gold);color:var(--navy);
 font-size:.85rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
 border:none;padding:12px 26px;border-radius:var(--radius);
 transition:background .2s,transform .2s;
}
.quiz-next:hover{background:var(--gold-lt);transform:translateY(-1px)}
.quiz-step-count{font-size:.75rem;color:var(--graphite);margin-top:14px;text-align:right}

/* Result card */
.quiz-result{display:none;text-align:center}
.quiz-result.active{display:block}
.result-score{
 font-family:var(--serif);font-size:3.5rem;font-weight:900;
 color:var(--gold);line-height:1;margin-bottom:8px;
}
.result-label{font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--graphite);margin-bottom:20px}
.result-recs{
 display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:20px 0 28px;
}
.result-rec-tag{
 background:rgba(196,131,113,.15);
 border:1px solid rgba(196,131,113,.3);
 color:var(--gold);
 font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
 padding:7px 14px;border-radius:30px;
}

/* ============================================================
 EMPIRE IN NUMBERS (signature section)
 ============================================================ */
.empire-section{
 background:var(--navy);
 padding:96px 24px;
 position:relative;
 overflow:hidden;
}
.empire-section::before{
 content:'';
 position:absolute;
 top:50%;left:50%;
 transform:translate(-50%,-50%);
 width:700px;height:700px;
 background:radial-gradient(circle,rgba(196,131,113,.07) 0%,transparent 70%);
 pointer-events:none;
}
@media(min-width:768px){.empire-section{padding:120px 48px}}

.empire-heading{
 font-family:var(--serif);
 font-size:clamp(1.8rem,4vw,2.8rem);
 font-weight:900;letter-spacing:.04em;text-transform:uppercase;
 color:var(--white);text-align:center;margin-bottom:8px;
}
.empire-sub{font-size:.85rem;color:var(--graphite);text-align:center;letter-spacing:.15em;text-transform:uppercase;margin-bottom:64px}

.stats-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:40px 24px;
 max-width:880px;margin:0 auto;
}
@media(min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:0}}

.stat-item{text-align:center;position:relative}
@media(min-width:768px){
 .stat-item:not(:last-child)::after{
 content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);
 width:1px;height:60px;background:rgba(196,131,113,.2);
 }
}
.stat-num{
 font-family:var(--serif);
 font-size:clamp(3rem,7vw,5.2rem);
 font-weight:900;line-height:1;
 color:var(--gold);
 display:block;
 margin-bottom:10px;
}
.stat-label-en{
 font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
 color:rgba(245,241,235,.75);
 display:block;margin-bottom:4px;
}
.stat-label-es{
 font-size:.7rem;font-weight:400;letter-spacing:.08em;
 color:rgba(245,241,235,.4);
 display:block;
 font-style:italic;
}

/* ============================================================
 SERVICES SECTION
 ============================================================ */
.services-section{
 background:var(--navy-mid);
 padding:96px 24px;
}
@media(min-width:768px){.services-section{padding:116px 48px}}

.services-intro{
 display:grid;grid-template-columns:1fr;gap:40px;margin-bottom:64px;
 align-items:end;
}
@media(min-width:768px){.services-intro{grid-template-columns:6fr 4fr;gap:48px}}
.services-intro .section-body{max-width:100%}

.services-grid{
 display:grid;
 grid-template-columns:1fr;
 gap:2px;
}
@media(min-width:600px){.services-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.services-grid{grid-template-columns:repeat(3,1fr)}}

/* Featured service (full-width anchor) */
.service-feature{
 grid-column:1/-1;
 position:relative;
 overflow:hidden;
 border-radius:6px 6px 0 0;
 min-height:260px;
 display:flex;align-items:flex-end;
}
@media(min-width:768px){.service-feature{min-height:320px}}
.service-feature img{
 position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
 filter:contrast(1.05) saturate(.9);
}
.service-feature-overlay{
 position:absolute;inset:0;
 background:linear-gradient(0deg,rgba(31,21,18,.92) 0%,rgba(31,21,18,.3) 100%);
}
.service-feature-content{
 position:relative;z-index:2;
 padding:32px;
 display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;
 width:100%;
}
.service-feature-label{
 font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
 color:var(--gold);margin-bottom:8px;
}
.service-feature-title{
 font-family:var(--serif);
 font-size:clamp(1.3rem,3vw,2rem);font-weight:900;color:var(--white);
 line-height:1.15;max-width:480px;
}
.service-feature-arrow{
 width:44px;height:44px;background:var(--gold);border-radius:50%;
 display:flex;align-items:center;justify-content:center;
 font-size:1.1rem;color:var(--navy);flex-shrink:0;
 transition:transform .25s;
}
.service-feature:hover .service-feature-arrow{transform:scale(1.1)}

.service-card{
 background:var(--navy-card);
 border:1px solid rgba(255,255,255,.05);
 padding:28px;
 display:flex;flex-direction:column;gap:10px;
 transition:border-color .25s,background .25s;
}
.service-card:hover{border-color:rgba(196,131,113,.3);background:rgba(196,131,113,.04)}
.service-card-icon{
 width:40px;height:40px;
 background:rgba(196,131,113,.12);
 border-radius:8px;
 display:flex;align-items:center;justify-content:center;
 font-size:1.1rem;
 color:var(--gold);
 flex-shrink:0;
}
.service-card-title{
 font-family:var(--serif);font-size:1.05rem;font-weight:700;
 color:var(--white);line-height:1.25;
}
.service-card-body{font-size:.82rem;color:var(--graphite);line-height:1.6}
.service-card-link{
 font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
 color:var(--gold);margin-top:auto;
 display:inline-flex;align-items:center;gap:6px;
}
.service-card-link::after{content:'→';transition:transform .2s}
.service-card:hover .service-card-link::after{transform:translateX(4px)}

/* ============================================================
 TECHNOLOGY ARM
 ============================================================ */
.tech-section{
 background:var(--navy);
 padding:96px 24px;
}
@media(min-width:768px){.tech-section{padding:116px 48px}}

.tech-grid{
 display:grid;
 grid-template-columns:1fr;
 gap:48px;
 align-items:center;
 margin-top:48px;
}
@media(min-width:900px){.tech-grid{grid-template-columns:5fr 7fr;gap:72px}}

.tech-copy .section-body{max-width:100%}
.tech-list{
 display:flex;flex-direction:column;gap:14px;
 margin-top:28px;
}
.tech-item{
 display:flex;gap:14px;align-items:flex-start;
 padding:16px;
 background:rgba(255,255,255,.03);
 border:1px solid rgba(255,255,255,.06);
 border-radius:8px;
 transition:border-color .25s;
}
.tech-item:hover{border-color:rgba(196,131,113,.25)}
.tech-item-dot{
 width:8px;height:8px;border-radius:50%;background:var(--gold);
 flex-shrink:0;margin-top:5px;
}
.tech-item-text{font-size:.88rem;color:rgba(245,241,235,.8);line-height:1.55}
.tech-item-text strong{color:var(--white);font-weight:600}

.tech-visual{
 position:relative;
 border-radius:10px;
 overflow:hidden;
}
.tech-visual img{
 width:100%;border-radius:10px;
 filter:contrast(1.08) saturate(1.0);
}
.tech-visual-overlay{
 position:absolute;inset:0;
 background:linear-gradient(180deg,transparent 40%,rgba(31,21,18,.7) 100%);
}
/* CSS-built bilingual chat panel (replaces scraped client-logo art) */
.tech-chat{
 background:linear-gradient(165deg,var(--navy-card),var(--navy-mid));
 border:1px solid rgba(196,131,113,.28);border-radius:10px;
 padding:18px 18px 64px;display:flex;flex-direction:column;gap:10px;
 min-height:380px;
}
.tech-chat-head{display:flex;align-items:center;gap:8px;color:var(--white);
 font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;
 border-bottom:1px solid rgba(196,131,113,.2);padding-bottom:12px;margin-bottom:6px}
.tech-chat-dot{width:8px;height:8px;border-radius:50%;background:#7fc98a;box-shadow:0 0 8px #7fc98a}
.tech-chat-lang{margin-left:auto;color:var(--gold-lt);font-size:.75rem}
.tc-row{max-width:82%;padding:10px 14px;border-radius:12px;font-size:.92rem;line-height:1.45}
.tc-in{align-self:flex-start;background:rgba(245,241,235,.08);color:var(--white);border-bottom-left-radius:3px}
.tc-out{align-self:flex-end;background:rgba(196,131,113,.22);color:var(--white);
 border:1px solid rgba(196,131,113,.3);border-bottom-right-radius:3px}
.tc-typing{align-self:flex-start;display:flex;gap:5px;padding:12px 14px;background:rgba(245,241,235,.08);border-radius:12px}
.tc-typing i{width:6px;height:6px;border-radius:50%;background:var(--gold-lt);opacity:.4;animation:tcblink 1.2s infinite}
.tc-typing i:nth-child(2){animation-delay:.2s}
.tc-typing i:nth-child(3){animation-delay:.4s}
@keyframes tcblink{0%,100%{opacity:.25}50%{opacity:1}}
.tech-badge{
 position:absolute;bottom:20px;left:20px;right:20px;
 background:rgba(31,21,18,.88);
 border:1px solid rgba(196,131,113,.25);
 border-radius:8px;
 padding:16px;
 display:flex;align-items:center;gap:14px;
}
.tech-badge-dot{
 width:10px;height:10px;border-radius:50%;background:var(--gold);flex-shrink:0;
}
@media(prefers-reduced-motion:no-preference){
 @keyframes goldBreathe{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}
 .tech-badge-dot{animation:goldBreathe 2.4s ease-in-out infinite}
}
.tech-badge-text{font-size:.8rem;color:rgba(245,241,235,.8);line-height:1.5}
.tech-badge-text strong{color:var(--gold);font-weight:700;display:block;font-size:.88rem}

/* ============================================================
 CLIENTS SECTION
 ============================================================ */
.clients-section{
 background:var(--navy-mid);
 padding:72px 24px;
}
@media(min-width:768px){.clients-section{padding:88px 48px}}

.clients-heading{
 text-align:center;
 font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
 color:var(--graphite);
 margin-bottom:40px;
}
.clients-row{
 display:flex;
 flex-wrap:wrap;
 gap:10px;
 justify-content:center;
 align-items:center;
 max-width:900px;margin:0 auto;
}
.client-pill{
 background:rgba(255,255,255,.05);
 border:1px solid rgba(255,255,255,.1);
 border-radius:30px;
 padding:12px 24px;
 font-size:.85rem;font-weight:700;letter-spacing:.06em;
 color:rgba(245,241,235,.7);
 transition:border-color .25s,color .25s;
}
.client-pill:hover{border-color:var(--gold);color:var(--gold)}

/* photo strip below clients */
.photo-strip{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:4px;
 max-width:1280px;margin:40px auto 0;
}
@media(min-width:768px){.photo-strip{grid-template-columns:repeat(4,1fr)}}
.photo-strip-item{
 aspect-ratio:1;overflow:hidden;
}
.photo-strip-item img{
 width:100%;height:100%;object-fit:cover;
 transition:transform .6s var(--transition),filter .4s;
 filter:saturate(.8) contrast(1.05);
}
.photo-strip-item:hover img{transform:scale(1.06);filter:saturate(1.1) contrast(1.08)}

/* ============================================================
 TESTIMONIAL
 ============================================================ */
.testimonial-section{
 background:var(--navy);
 padding:96px 24px;
}
@media(min-width:768px){.testimonial-section{padding:116px 48px}}

.testimonial-grid{
 display:grid;grid-template-columns:1fr;gap:32px;margin-top:48px;
}
@media(min-width:768px){.testimonial-grid{grid-template-columns:1fr 1fr;gap:24px}}

.testimonial-card{
 background:var(--navy-card);
 border:1px solid rgba(255,255,255,.07);
 border-radius:10px;
 padding:32px;
 display:flex;flex-direction:column;gap:16px;
 position:relative;
 overflow:hidden;
}
.testimonial-card::before{
 content:'\201C';
 font-family:var(--serif);font-size:8rem;font-weight:900;
 color:rgba(196,131,113,.08);
 position:absolute;top:-10px;left:16px;line-height:1;
 pointer-events:none;
}
.testimonial-stars{color:var(--gold);font-size:.9rem;letter-spacing:2px}
.testimonial-text{font-size:.92rem;line-height:1.7;color:rgba(245,241,235,.8);position:relative}
.testimonial-author{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--graphite)}

.review-aggregate{
 text-align:center;margin-top:48px;
 display:flex;flex-direction:column;align-items:center;gap:8px;
}
.review-agg-num{
 font-family:var(--serif);font-size:3rem;font-weight:900;color:var(--gold);line-height:1;
}
.review-agg-stars{color:var(--gold);font-size:1.1rem;letter-spacing:3px;margin:2px 0}
.review-agg-label{font-size:.8rem;color:var(--graphite);letter-spacing:.12em;text-transform:uppercase}
.review-link{
 font-size:.78rem;font-weight:600;color:var(--gold);
 letter-spacing:.08em;text-transform:uppercase;
 border-bottom:1px solid rgba(196,131,113,.35);
 padding-bottom:2px;
 transition:border-color .2s;
}
.review-link:hover{border-color:var(--gold)}

/* ============================================================
 FREE CONSULTATION / CONTACT CTA
 ============================================================ */
.cta-section{
 background:linear-gradient(135deg,var(--navy-mid) 0%,rgba(14,18,40,1) 100%);
 padding:96px 24px;
 position:relative;overflow:hidden;
}
@media(min-width:768px){.cta-section{padding:116px 48px}}
.cta-section::after{
 content:'';
 position:absolute;
 top:-40%;right:-15%;
 width:600px;height:600px;
 border-radius:50%;
 background:radial-gradient(circle,rgba(196,131,113,.09) 0%,transparent 70%);
 pointer-events:none;
}
.cta-inner{
 max-width:680px;margin:0 auto;text-align:center;position:relative;z-index:2;
}
.cta-inner .section-label{justify-content:center}
.cta-inner .section-heading{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:20px}
.cta-inner .section-body{max-width:100%;margin:0 auto 36px;text-align:center}
.cta-form{
 display:flex;flex-direction:column;gap:12px;
 max-width:480px;margin:0 auto;
}
@media(min-width:480px){
 .cta-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
}
.cta-input{
 background:rgba(255,255,255,.06);
 border:1.5px solid rgba(255,255,255,.12);
 border-radius:var(--radius);
 padding:14px 18px;
 color:var(--white);
 font-family:var(--sans);font-size:.9rem;
 outline:none;width:100%;
 transition:border-color .2s;
 min-height:48px;
}
.cta-input::placeholder{color:rgba(245,241,235,.38)}
.cta-input:focus{border-color:var(--gold)}
.cta-select{
 background:rgba(255,255,255,.06);
 border:1.5px solid rgba(255,255,255,.12);
 border-radius:var(--radius);
 padding:14px 18px;
 color:rgba(245,241,235,.7);
 font-family:var(--sans);font-size:.9rem;
 outline:none;width:100%;
 min-height:48px;
 transition:border-color .2s;
 appearance:none;
}
.cta-select:focus{border-color:var(--gold)}
.cta-select option{background:var(--navy)}
.cta-submit{
 background:var(--gold);color:var(--navy);
 font-size:.92rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
 border:none;border-radius:var(--radius);
 padding:16px 28px;width:100%;
 transition:background .25s,transform .2s;
 min-height:52px;
}
.cta-submit:hover{background:var(--gold-lt);transform:translateY(-2px)}
.cta-fine{font-size:.73rem;color:rgba(245,241,235,.38);margin-top:10px}

/* ============================================================
 FOOTER
 ============================================================ */
footer{
 background:#050712;
 padding:64px 24px 32px;
 border-top:1px solid rgba(255,255,255,.06);
}
@media(min-width:768px){footer{padding:80px 48px 40px}}
.footer-grid{
 max-width:1280px;margin:0 auto;
 display:grid;grid-template-columns:1fr;gap:40px;
 margin-bottom:48px;
}
@media(min-width:768px){.footer-grid{grid-template-columns:3fr 1fr 1fr 2fr;gap:32px}}

.footer-brand .footer-tagline{
 font-size:.88rem;color:rgba(245,241,235,.55);line-height:1.65;
 margin-top:16px;max-width:280px;
}
.footer-col-title{
 font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
 color:var(--gold);margin-bottom:18px;
}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{
 font-size:.83rem;color:rgba(245,241,235,.55);
 transition:color .2s;
}
.footer-links a:hover{color:var(--gold)}

.footer-contact p{font-size:.83rem;color:rgba(245,241,235,.55);line-height:1.7}
.footer-contact strong{color:rgba(245,241,235,.8);font-weight:600}

.footer-bottom{
 border-top:1px solid rgba(255,255,255,.06);
 padding-top:24px;
 max-width:1280px;margin:0 auto;
 display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;
}
.footer-bottom p{font-size:.75rem;color:rgba(245,241,235,.35);letter-spacing:.04em}

/* ============================================================
 FLOATING CHAT BUTTON
 ============================================================ */
.chat-float{
 position:fixed;bottom:24px;right:20px;
 background:var(--gold);
 color:var(--navy);
 border:none;border-radius:30px;
 padding:13px 22px 13px 16px;
 font-size:.82rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
 display:flex;align-items:center;gap:9px;
 box-shadow:0 8px 32px rgba(196,131,113,.4);
 z-index:170;
 cursor:pointer;
 transition:transform .25s var(--transition),box-shadow .25s;
}
.chat-float:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 40px rgba(196,131,113,.5)}
.chat-float-icon{font-size:1.1rem}

/* ============================================================
 FOCUS / ACCESSIBILITY
 ============================================================ */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}

/* ============================================================
   SHARED SUB-PAGE COMPONENTS (multi-page build, 2026-07-15)
   Built on the existing tokens: --navy #1f1512, --navy-mid,
   --navy-card, --gold #c48371, --gold-lt, --terra #cf6c5c,
   --white #f5f1eb, --graphite, --serif, --sans.
   ============================================================ */
#site-header.scrolled{box-shadow:0 10px 34px rgba(0,0,0,.42);background:rgba(31,21,18,.94)}
.main-nav a[aria-current="page"],.mobile-link[aria-current="page"]{color:var(--gold)}

/* Page hero (inner-page banner) */
.page-hero{position:relative;padding:150px 0 64px;background:
  radial-gradient(1200px 480px at 78% -10%,rgba(196,131,113,.16),transparent 60%),
  linear-gradient(180deg,var(--navy-mid),var(--navy));border-bottom:1px solid rgba(196,131,113,.16);overflow:hidden}
.page-hero .container{position:relative;z-index:2}
.page-hero .eyebrow{color:var(--gold);font-family:var(--sans);font-weight:600;letter-spacing:.22em;text-transform:uppercase;font-size:.72rem;margin-bottom:16px}
.page-hero h1{font-family:var(--serif);font-weight:900;color:var(--white);font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.04;letter-spacing:-.01em}
.page-hero h1 em,.page-hero h1 .accent{font-style:italic;color:var(--gold)}
.page-hero .lead{color:var(--graphite);font-size:clamp(1.02rem,2vw,1.2rem);line-height:1.6;max-width:640px;margin-top:20px}

/* Generic layout helpers */
.eyebrow{color:var(--gold);font-family:var(--sans);font-weight:600;letter-spacing:.22em;text-transform:uppercase;font-size:.72rem}
.lead{color:var(--graphite);font-size:1.06rem;line-height:1.65}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* Card */
.card{background:var(--navy-card);border:1px solid rgba(196,131,113,.14);border-radius:12px;padding:28px;transition:transform .5s var(--transition),border-color .5s var(--transition),box-shadow .5s var(--transition)}
.card:hover{transform:translateY(-5px);border-color:rgba(196,131,113,.4);box-shadow:0 20px 46px rgba(0,0,0,.34)}
.card h3{font-family:var(--serif);color:var(--white);font-size:1.28rem;margin-bottom:10px}
.card p{color:var(--graphite);font-size:.95rem;line-height:1.6}
.card .card-ico{width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,var(--gold),var(--terra));color:var(--navy);font-size:1.2rem;margin-bottom:16px}

/* Pill / tag */
.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:100px;border:1px solid rgba(196,131,113,.3);color:var(--gold-lt);font-family:var(--sans);font-size:.76rem;font-weight:500}

/* Section intro block */
.sec-intro{max-width:680px;margin:0 auto 46px;text-align:center}
.sec-intro h2{font-family:var(--serif);font-weight:900;color:var(--white);font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.08;margin:14px 0 12px}
.sec-intro h2 .accent{color:var(--gold);font-style:italic}
.sec-intro p{color:var(--graphite);font-size:1.04rem;line-height:1.6}

/* Free Audit nav highlight (lead magnet) */
.main-nav a.nav-audit{color:var(--navy);font-weight:700;background:linear-gradient(135deg,var(--gold-lt),var(--gold));padding:8px 15px;border-radius:100px;box-shadow:0 4px 14px rgba(196,131,113,.30);transition:transform .25s var(--transition),box-shadow .25s var(--transition)}
.main-nav a.nav-audit:hover{color:var(--navy);transform:translateY(-1px);box-shadow:0 7px 20px rgba(196,131,113,.46)}
.main-nav a.nav-audit[aria-current="page"]{color:var(--navy)}
.main-nav a.nav-audit::before{content:"\2732";font-size:.72em;margin-right:5px;opacity:.85}
