/* ═══════════════════════════════════════════════════════
   LE REDFORT  ·  style.css  v3
   Brand: Charcoal #1a1a1a · Crimson #c0202a · Cream #f5f0e8
═══════════════════════════════════════════════════════ */
:root {
  --red:       #c0202a;
  --red-dark:  #961820;
  --red-light: #d93030;
  --charcoal:  #1a1a1a;
  --charcoal-2:#242424;
  --charcoal-3:#2e2e2e;
  --cream:     #f5f0e8;
  --cream-2:   #ede7d8;
  --cream-3:   #e0d8c8;
  --white:     #ffffff;
  --text-dark: #1a1a1a;
  --text-mid:  #4a4a4a;
  --text-light:#7a7a7a;
  --border:    #d8d0c0;
  --font-serif:'Libre Baskerville', Georgia, serif;
  --font-sans: 'DM Sans', system-ui, sans-serif;
  --nav-h: 64px;
  --r: 4px;
  --shadow:    0 2px 16px rgba(0,0,0,.08);
  --shadow-lg: 0 8px 40px rgba(0,0,0,.14);
  --transition: .22s ease;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-sans);color:var(--text-dark);background:var(--cream);line-height:1.6}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:var(--font-sans);cursor:pointer}

/* ─── NAV ─────────────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--nav-h);background:rgba(26,26,26,.97);backdrop-filter:blur(10px);border-bottom:2px solid var(--red);transition:box-shadow .3s}
.nav.scrolled{box-shadow:0 4px 30px rgba(0,0,0,.4)}
.nav-inner{max-width:1280px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;gap:1rem}
.nav-logo{display:flex;flex-direction:column;line-height:1;color:var(--white)}
.nav-logo-le{font-family:var(--font-serif);font-size:.6rem;letter-spacing:.3em;color:var(--red);font-weight:400}
.nav-logo-name{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;letter-spacing:.15em}
.nav-progress{flex:1;height:2px;background:rgba(255,255,255,.1);border-radius:2px;max-width:200px;overflow:hidden}
.nav-progress-bar{height:100%;background:var(--red);width:0;transition:width .1s linear}
.nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none}
.nav-links a{color:rgba(255,255,255,.75);font-size:.82rem;font-weight:500;letter-spacing:.05em;transition:color var(--transition);white-space:nowrap}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-links .nav-cta{background:var(--red);color:var(--white);padding:.45rem 1.1rem;border-radius:var(--r);font-weight:600;letter-spacing:.06em;transition:background var(--transition),transform .15s}
.nav-links .nav-cta:hover{background:var(--red-light);transform:translateY(-1px)}
.lang-toggle{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:var(--white);font-size:.75rem;font-weight:700;letter-spacing:.12em;padding:.3rem .65rem;border-radius:var(--r);transition:background var(--transition),border-color var(--transition)}
.lang-toggle:hover{background:rgba(192,32,42,.3);border-color:var(--red)}
.nav-right-mobile{display:none;align-items:center;gap:.6rem}
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--white);border-radius:2px;transition:all .3s}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile drawer */
.nav-drawer{position:fixed;top:var(--nav-h);left:0;right:0;z-index:190;background:var(--charcoal-2);border-bottom:2px solid var(--red);transform:translateY(-100%);opacity:0;transition:transform .3s ease,opacity .3s ease;pointer-events:none}
.nav-drawer.open{transform:translateY(0);opacity:1;pointer-events:auto}
.nav-drawer ul{padding:1.5rem 2rem;display:flex;flex-direction:column;gap:.2rem}
.nav-drawer a{display:block;padding:.7rem 0;color:rgba(255,255,255,.8);font-size:.95rem;font-weight:500;border-bottom:1px solid rgba(255,255,255,.07);transition:color var(--transition)}
.nav-drawer a:hover{color:var(--red)}

/* ─── FLOATING CTA ─────────────────────────────────── */
.float-cta{position:fixed;bottom:1.75rem;right:1.75rem;z-index:180;background:var(--red);color:var(--white);padding:.75rem 1.5rem;border-radius:2rem;font-weight:700;font-size:.82rem;letter-spacing:.08em;box-shadow:0 4px 20px rgba(192,32,42,.45);opacity:0;transform:translateY(12px);transition:opacity .3s,transform .3s,background .2s;pointer-events:none;white-space:nowrap}
.float-cta.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.float-cta:hover{background:var(--red-light);box-shadow:0 6px 28px rgba(192,32,42,.55)}

/* ─── HERO ─────────────────────────────────────────── */
.hero{display:flex;min-height:100vh;padding-top:var(--nav-h)}
.hero-sidebar{width:300px;flex-shrink:0;background:var(--charcoal);color:var(--white);position:sticky;top:var(--nav-h);height:calc(100vh - var(--nav-h));overflow-y:auto}
.hero-sidebar-inner{padding:2.25rem 1.75rem;display:flex;flex-direction:column;gap:1.35rem;min-height:100%}
.hero-logo-le{font-family:var(--font-serif);font-size:.65rem;letter-spacing:.3em;color:var(--red);font-weight:400;margin-bottom:.1rem}
.hero-logo-name{font-family:var(--font-serif);font-size:2.25rem;font-weight:700;letter-spacing:.15em;line-height:1}
.hero-tagline{font-size:.85rem;color:rgba(255,255,255,.6);line-height:1.5;font-weight:300}
.hero-contact-list{display:flex;flex-direction:column;gap:.65rem}
.hero-contact-item{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:rgba(255,255,255,.75)}
.hero-contact-item svg{width:15px;height:15px;flex-shrink:0;opacity:.55}
.hero-contact-item a{color:rgba(255,255,255,.75);transition:color var(--transition)}
.hero-contact-item a:hover{color:var(--red)}
.hero-lang-badge{display:inline-block;background:rgba(192,32,42,.18);border:1px solid rgba(192,32,42,.35);color:var(--red-light);font-size:.72rem;font-weight:600;letter-spacing:.08em;padding:.3rem .7rem;border-radius:var(--r)}
.hero-mission{font-size:.68rem;font-weight:700;letter-spacing:.2em;color:var(--red);padding:.45rem 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.hero-cta-btn{display:block;background:var(--red);color:var(--white);text-align:center;padding:.9rem 1.25rem;border-radius:var(--r);font-weight:700;font-size:.78rem;letter-spacing:.1em;line-height:1.4;transition:background var(--transition),transform .15s;margin-top:auto}
.hero-cta-btn small{display:block;font-weight:400;font-size:.7rem;opacity:.82;margin-top:.18rem}
.hero-cta-btn:hover{background:var(--red-light);transform:translateY(-2px)}
.sidebar-progress{margin-top:.5rem}
.sidebar-progress-track{height:2px;background:rgba(255,255,255,.12);border-radius:2px;overflow:hidden}
.sidebar-progress-fill{height:100%;background:var(--red);width:0;transition:width .15s linear}

.hero-content{flex:1;padding:2.25rem 3.5rem;display:flex;flex-direction:column;justify-content:center;background:var(--cream)}
.hero-hook-text{font-family:var(--font-serif);font-size:clamp(1.3rem,2.1vw,1.7rem);line-height:1.35;color:var(--text-dark);margin-bottom:.9rem}
.hero-body{font-size:.97rem;color:var(--text-mid);max-width:660px;line-height:1.65;padding-bottom:1.5rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.hero-stat{text-align:center}
.stat-num{display:block;font-family:var(--font-serif);font-size:clamp(1.4rem,2.3vw,2rem);font-weight:700;color:var(--red);line-height:1.1;margin-bottom:.3rem}
.stat-bilingual{font-size:clamp(1rem,1.8vw,1.5rem);letter-spacing:.05em}
.stat-label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.1em;color:var(--text-light);text-transform:uppercase}
.hero-scroll-hint{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;color:var(--text-light);letter-spacing:.05em;animation:bobDown 2s ease-in-out infinite}
.hero-scroll-hint svg{width:16px;height:16px}
@keyframes bobDown{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ─── SECTION BASE ──────────────────────────────────── */
.section{padding:5.5rem 2rem}
.section-light{background:var(--cream)}
.section-dark{background:var(--charcoal)}
.section-red{background:var(--red)}
.section-inner{max-width:1200px;margin:0 auto}
.section-label{font-size:.68rem;font-weight:700;letter-spacing:.25em;color:var(--red);text-transform:uppercase;margin-bottom:.6rem}
.section-label-light{font-size:.68rem;font-weight:700;letter-spacing:.25em;color:rgba(255,255,255,.45);text-transform:uppercase;margin-bottom:.6rem}
.section-title{font-family:var(--font-serif);font-size:clamp(1.6rem,2.8vw,2.3rem);font-weight:700;color:var(--text-dark);line-height:1.2;margin-bottom:.9rem}
.section-title-light{font-family:var(--font-serif);font-size:clamp(1.6rem,2.8vw,2.3rem);font-weight:700;color:var(--white);line-height:1.2;margin-bottom:.9rem}
.section-subtitle{font-size:.97rem;color:var(--text-mid);max-width:600px;margin-bottom:3rem;line-height:1.65}

/* ─── SERVICE CARDS (clickable buttons) ─────────────── */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.service-card{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--red);padding:1.75rem;border-radius:var(--r);text-align:left;transition:box-shadow .25s,transform .25s,border-color .2s;display:flex;flex-direction:column;position:relative;cursor:pointer}
.service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--red)}
.service-card:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.service-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}
.service-icon{width:42px;height:42px;background:rgba(192,32,42,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.service-icon svg{width:20px;height:20px;color:var(--red)}
.service-expand-hint{font-size:.72rem;font-weight:700;color:var(--red);letter-spacing:.06em;opacity:0;transition:opacity var(--transition);white-space:nowrap;align-self:flex-end}
.service-card:hover .service-expand-hint{opacity:1}
.service-name{font-family:var(--font-serif);font-size:1.05rem;font-weight:700;color:var(--text-dark);margin-bottom:.6rem}
.service-desc{font-size:.875rem;color:var(--text-mid);line-height:1.6;flex:1;margin-bottom:1rem}
.service-timeline{font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--red);text-transform:uppercase;border-top:1px solid var(--border);padding-top:.65rem;margin-top:auto}

/* ─── MODAL ─────────────────────────────────────────── */
.modal-backdrop{position:fixed;inset:0;z-index:300;background:rgba(26,26,26,.75);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .25s ease}
.modal-backdrop.open{opacity:1;pointer-events:auto}
.modal{background:var(--white);border-radius:8px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;padding:2.5rem;position:relative;transform:translateY(16px) scale(.98);transition:transform .25s ease;box-shadow:0 20px 60px rgba(0,0,0,.25);border-top:4px solid var(--red)}
.modal-backdrop.open .modal{transform:translateY(0) scale(1)}
.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;padding:.4rem;border-radius:50%;color:var(--text-light);transition:color var(--transition),background var(--transition)}
.modal-close:hover{color:var(--red);background:rgba(192,32,42,.1)}
.modal-close svg{width:20px;height:20px;display:block}
.modal-icon{width:52px;height:52px;background:rgba(192,32,42,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}
.modal-icon svg{width:26px;height:26px;color:var(--red)}
.modal-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--text-dark);margin-bottom:.5rem}
.modal-tagline{font-size:.95rem;color:var(--text-mid);margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.modal-body{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem}
.modal-section h4{font-size:.72rem;font-weight:700;letter-spacing:.15em;color:var(--red);text-transform:uppercase;margin-bottom:.6rem}
.modal-section ul{display:flex;flex-direction:column;gap:.4rem}
.modal-section li{font-size:.9rem;color:var(--text-mid);padding-left:1.1rem;position:relative;line-height:1.5}
.modal-section li::before{content:'';position:absolute;left:0;top:.6em;width:5px;height:5px;background:var(--red);border-radius:50%}
.modal-section p{font-size:.9rem;color:var(--text-mid);line-height:1.65}
.modal-meta{display:flex;gap:1.5rem;flex-wrap:wrap}
.modal-meta-item{display:flex;flex-direction:column;gap:.2rem}
.modal-meta-item strong{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--text-light);text-transform:uppercase}
.modal-meta-item span{font-size:.9rem;font-weight:600;color:var(--text-dark)}
.modal-cta{display:inline-block;background:var(--red);color:var(--white);padding:.8rem 1.75rem;border-radius:var(--r);font-weight:700;font-size:.875rem;letter-spacing:.07em;transition:background var(--transition),transform .15s}
.modal-cta:hover{background:var(--red-light);transform:translateY(-1px)}

/* ─── WHY TABS ──────────────────────────────────────── */
.why-tabs{margin-top:2.5rem}
.why-tab-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:0;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:0}
.why-tab-btn{background:none;border:none;color:rgba(255,255,255,.5);font-size:.8rem;font-weight:600;letter-spacing:.06em;padding:.65rem 1.1rem;border-radius:var(--r) var(--r) 0 0;transition:color var(--transition),background var(--transition);position:relative;bottom:-1px}
.why-tab-btn:hover{color:rgba(255,255,255,.85)}
.why-tab-btn.active{color:var(--white);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-bottom-color:var(--charcoal)}
.why-tab-panels{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-top:none;border-radius:0 0 var(--r) var(--r);padding:2.5rem;min-height:220px}
.why-tab-panel{display:none;animation:fadeIn .25s ease}
.why-tab-panel.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.why-panel-num{font-family:var(--font-serif);font-size:2.5rem;font-weight:700;color:rgba(192,32,42,.6);line-height:1;margin-bottom:.75rem}
.why-tab-panel h3{font-family:var(--font-serif);color:var(--white);font-size:1.2rem;margin-bottom:.6rem}
.why-tab-panel p{font-size:.925rem;color:rgba(255,255,255,.65);line-height:1.65;margin-bottom:1.25rem;max-width:560px}
.why-panel-list{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .75rem}
.why-panel-list li{font-size:.85rem;color:rgba(255,255,255,.6);padding-left:1rem;position:relative}
.why-panel-list li::before{content:'';position:absolute;left:0;top:.55em;width:5px;height:5px;background:var(--red);border-radius:50%}

/* ─── ABOUT ─────────────────────────────────────────── */
.about-firm{margin-bottom:4rem;padding-bottom:4rem;border-bottom:1px solid var(--border)}
.about-lead{font-size:1rem;color:var(--text-mid);line-height:1.7;margin-bottom:2.25rem;max-width:700px}
.about-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:.5rem}
.about-pillar{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--red);padding:1.6rem;border-radius:var(--r);transition:box-shadow .2s,transform .2s}
.about-pillar:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.pillar-icon{width:38px;height:38px;background:rgba(192,32,42,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.85rem}
.pillar-icon svg{width:18px;height:18px;color:var(--red)}
.about-pillar h4{font-family:var(--font-serif);font-size:.975rem;font-weight:700;color:var(--text-dark);margin-bottom:.45rem}
.about-pillar p{font-size:.85rem;color:var(--text-mid);line-height:1.6}

.about-leadership .section-label{margin-bottom:1.5rem}
.about-inner{display:grid;grid-template-columns:260px 1fr;gap:3.5rem;align-items:start;margin-bottom:2rem}
.about-avatar{width:82px;height:82px;border-radius:50%;background:var(--charcoal);border:3px solid var(--red);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:var(--white);margin-bottom:.85rem}
.about-name{font-family:var(--font-serif);font-size:1.1rem;letter-spacing:.15em;color:var(--text-dark);margin-bottom:.2rem}
.about-role{font-size:.82rem;color:var(--red);font-weight:600;margin-bottom:.85rem;letter-spacing:.05em}
.about-bio{font-size:.875rem;color:var(--text-mid);line-height:1.65;margin-bottom:1rem}
.about-creds{display:flex;flex-wrap:wrap;gap:.4rem}
.cred-tag{background:var(--charcoal);color:rgba(255,255,255,.8);font-size:.72rem;font-weight:600;letter-spacing:.06em;padding:.28rem .65rem;border-radius:var(--r);border-left:3px solid var(--red)}

/* accordion experience */
.exp-accordion{display:flex;flex-direction:column;gap:.5rem}
.exp-item{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--white)}
.exp-header{width:100%;background:none;border:none;padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;cursor:pointer;transition:background var(--transition)}
.exp-header:hover{background:var(--cream)}
.exp-header-left{flex:1}
.exp-title{font-weight:700;font-size:.875rem;color:var(--text-dark);margin-bottom:.15rem}
.exp-company{font-size:.78rem;color:var(--red);font-weight:600}
.exp-header-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.exp-dates{font-size:.72rem;font-weight:700;background:var(--red);color:var(--white);padding:.2rem .55rem;border-radius:var(--r);letter-spacing:.05em}
.exp-chevron{width:16px;height:16px;color:var(--text-light);transition:transform .25s ease;flex-shrink:0}
.exp-header[aria-expanded="true"] .exp-chevron{transform:rotate(180deg)}
.exp-body{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .25s ease}
.exp-body.open{max-height:400px;padding:0 1.25rem 1.1rem}
.exp-body ul{display:flex;flex-direction:column;gap:.4rem}
.exp-body li{font-size:.83rem;color:var(--text-mid);padding-left:1rem;position:relative;line-height:1.5}
.exp-body li::before{content:'·';position:absolute;left:0;color:var(--red);font-weight:700}

.comp-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.comp-tag{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--red);font-size:.78rem;font-weight:500;padding:.3rem .7rem;border-radius:2px;color:var(--text-dark);transition:background var(--transition)}
.comp-tag:hover{background:var(--cream-2)}

/* ─── PROCESS STEPPER ──────────────────────────────── */
.stepper{margin-top:2.5rem}
.stepper-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative}
.stepper-step{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1}
.stepper-dot{
  width:56px;height:56px;border-radius:50%;
  background:var(--red-dark);
  border:2px solid rgba(255,255,255,.4);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.1rem;
  transition:background .4s,border-color .4s,box-shadow .4s;
  position:relative;z-index:1; /* within step stacking context — above ::before/::after on parent */
}
.stepper-dot span{font-family:var(--font-serif);font-size:1.1rem;font-weight:700;color:rgba(255,255,255,.6);transition:color .4s}
.stepper-step.active .stepper-dot{background:rgba(255,255,255,.18);border-color:var(--white);box-shadow:0 0 0 4px rgba(255,255,255,.12)}
.stepper-step.active .stepper-dot span{color:var(--white)}
.stepper-steps.js-stepper::before,.stepper-steps.js-stepper::after{display:none}
.stepper-content h3{font-family:var(--font-serif);color:var(--white);font-size:1rem;margin-bottom:.3rem}
.stepper-sub{font-size:.78rem;color:rgba(255,255,255,.6);font-weight:600;margin-bottom:.5rem}
.stepper-detail{font-size:.82rem;color:rgba(255,255,255,.55);line-height:1.5}
.process-cta{text-align:center;margin-top:3rem}
.process-cta-btn{display:inline-block;background:var(--white);color:var(--red);padding:.85rem 2rem;border-radius:var(--r);font-weight:700;font-size:.875rem;letter-spacing:.07em;transition:background var(--transition),transform .15s;border:2px solid var(--white)}
.process-cta-btn:hover{background:transparent;color:var(--white);transform:translateY(-2px)}

/* ─── CONTACT ──────────────────────────────────────── */
.contact-inner{display:grid;grid-template-columns:1fr 1.7fr;gap:5rem;align-items:start}
.contact-body{font-size:.97rem;color:var(--text-mid);line-height:1.7;margin-bottom:1.75rem}
.contact-info-list{display:flex;flex-direction:column;gap:.85rem;margin-bottom:2rem}
.contact-info-item{display:flex;align-items:center;gap:.7rem;font-size:.875rem;color:var(--text-mid)}
.contact-info-item svg{width:17px;height:17px;color:var(--red);flex-shrink:0}
.contact-info-item a{color:var(--text-mid);transition:color var(--transition)}
.contact-info-item a:hover{color:var(--red)}
.contact-steps-mini{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:1rem 1.25rem;background:var(--white);border:1px solid var(--border);border-left:3px solid var(--red);border-radius:var(--r)}
.csm-step{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:500;color:var(--text-dark)}
.csm-num{width:20px;height:20px;border-radius:50%;background:var(--red);color:var(--white);font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.csm-arrow{font-size:.75rem;color:var(--text-light)}

/* form */
.contact-form{display:flex;flex-direction:column;gap:1.1rem}
.form-row{display:flex;gap:1rem}
.form-row-2>*{flex:1}
.form-group{display:flex;flex-direction:column;gap:.35rem;position:relative}
.form-group label{font-size:.73rem;font-weight:700;letter-spacing:.06em;color:var(--text-dark);text-transform:uppercase}
.form-group input,.form-group select,.form-group textarea{background:var(--white);border:1.5px solid var(--border);border-radius:var(--r);padding:.7rem .95rem;font-family:var(--font-sans);font-size:.9rem;color:var(--text-dark);transition:border-color var(--transition),box-shadow var(--transition);outline:none}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(192,32,42,.1)}
.form-group input.error,.form-group textarea.error{border-color:var(--red-light);background:rgba(192,32,42,.04)}
.form-group textarea{resize:vertical;min-height:100px}
.form-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%234a4a4a'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:15px;padding-right:2.25rem;cursor:pointer}
.field-error{font-size:.72rem;color:var(--red);font-weight:500;min-height:.9rem;display:block}
.form-error{display:none;background:rgba(192,32,42,.07);border:1px solid rgba(192,32,42,.3);color:var(--red-dark);padding:.7rem 1rem;border-radius:var(--r);font-size:.85rem;font-weight:500}
.form-error.visible{display:block}
.form-submit{background:var(--red);color:var(--white);border:none;padding:.95rem 2rem;font-family:var(--font-sans);font-size:.875rem;font-weight:700;letter-spacing:.08em;border-radius:var(--r);transition:background var(--transition),transform .15s;align-self:flex-start;cursor:pointer}
.form-submit:hover:not(:disabled){background:var(--red-light);transform:translateY(-2px)}
.form-submit:disabled{opacity:.65;cursor:not-allowed}
.form-success{display:none;align-items:center;gap:.85rem;background:rgba(192,32,42,.07);border:1px solid rgba(192,32,42,.25);padding:1.1rem 1.4rem;border-radius:var(--r);color:var(--red-dark)}
.form-success.visible{display:flex}
.form-success svg{width:26px;height:26px;flex-shrink:0}
.form-success p{font-size:.9rem;font-weight:600}

/* ─── FOOTER ────────────────────────────────────────── */
.footer{background:var(--charcoal);padding:2.75rem 2rem;border-top:2px solid var(--red)}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:.85rem;text-align:center}
.footer-logo{display:flex;flex-direction:column;align-items:center}
.footer-logo-le{font-family:var(--font-serif);font-size:.58rem;letter-spacing:.3em;color:var(--red)}
.footer-logo-name{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;letter-spacing:.15em;color:var(--white)}
.footer-tagline{font-size:.82rem;color:rgba(255,255,255,.4)}
.footer-nav{display:flex;gap:1.75rem;flex-wrap:wrap;justify-content:center}
.footer-nav a{font-size:.79rem;font-weight:500;color:rgba(255,255,255,.5);transition:color var(--transition)}
.footer-nav a:hover{color:var(--red)}
.footer-copy{font-size:.75rem;color:rgba(255,255,255,.25)}
.footer-copy a{color:rgba(255,255,255,.25);transition:color var(--transition)}
.footer-copy a:hover{color:var(--red)}

/* ─── SCROLL REVEAL ─────────────────────────────────── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ─── RESPONSIVE ────────────────────────────────────── */
@media(max-width:1100px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .about-pillars{grid-template-columns:repeat(2,1fr)}
  .about-inner{grid-template-columns:1fr;gap:2.5rem}
  .contact-inner{grid-template-columns:1fr;gap:3rem}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .stepper-steps{grid-template-columns:repeat(2,1fr)}
  .stepper-track{display:none}
  .why-panel-list{grid-template-columns:1fr}
}
@media(max-width:768px){
  .nav-links{display:none}
  .nav-progress{display:none}
  .nav-right-mobile{display:flex}
  .nav-hamburger{display:flex}
  .hero{flex-direction:column;min-height:auto}
  .hero-sidebar{width:100%;position:static;height:auto}
  .hero-sidebar-inner{padding:2rem 1.5rem}
  .hero-content{padding:2.5rem 1.5rem}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .services-grid{grid-template-columns:1fr}
  .about-pillars{grid-template-columns:1fr}
  .section{padding:3.5rem 1.25rem}
  .stepper-steps{grid-template-columns:1fr 1fr}
  .form-row{flex-direction:column}
  .contact-inner{gap:2.5rem}
  .float-cta{bottom:1rem;right:1rem;font-size:.77rem;padding:.65rem 1.2rem}
  .why-tab-btns{gap:.3rem}
  .why-tab-btn{font-size:.73rem;padding:.5rem .7rem}
  .why-tab-panels{padding:1.75rem 1.25rem}
}
@media(max-width:480px){
  .stepper-steps{grid-template-columns:1fr}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .modal{padding:1.75rem}
}
