/* ==========================================================================
   Kaduna Customer Service School — kadcustomerservicesch.com.ng
   Design system modelled on the Leroux layout language.
   Type: DM Sans (display) / Heebo (text)
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --ink:#20282D;          /* headings */
  --body:#263037;         /* body copy */
  --dark:#223035;         /* dark sections */
  --dark-deep:#19272B;    /* footer / deepest */
  --muted:#85979B;        /* secondary text */
  --muted-2:#6B7B80;
  --line:#D5DEDE;         /* hairlines */
  --line-soft:#E6ECEC;
  --surface:#EFEFEF;      /* light grey band */
  --surface-2:#FBF9F9;    /* off-white band */
  --sage:#D5DEDE;         /* pale block */
  --white:#fff;
  --brand:#2F3192;        /* KCSS blue, used sparingly */
  --brand-soft:#7EC8E3;

  --display:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --text:"Heebo",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --pad-x:50px;           /* section side padding */
  --sec-y:150px;          /* section vertical rhythm */
  --maxw:1720px;
  --ease:cubic-bezier(.25,.8,.25,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0; background:var(--white); color:var(--body);
  font-family:var(--text); font-size:15px; line-height:24px; font-weight:400;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg,video{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none; transition:color .25s var(--ease), opacity .25s var(--ease)}
button,input,textarea,select{font:inherit; color:inherit}
button{cursor:pointer; background:none; border:0}
ul,ol{margin:0; padding:0; list-style:none}
figure{margin:0}

h1,h2,h3,h4,h5,h6{
  font-family:var(--display); color:var(--ink); margin:0 0 20px; font-weight:400;
  letter-spacing:-.01em;
}
h1{font-size:47px; line-height:1.178}
h2{font-size:37px; line-height:1.238}
h3{font-size:28px; line-height:1.3125}
h4{font-size:22px; line-height:1.4; font-weight:500}
h5{font-size:18px; line-height:1.5; font-weight:500}
h6{font-size:15px; line-height:1.6; font-weight:500}
p{margin:0 0 24px}
p:last-child{margin-bottom:0}

::selection{background:var(--ink); color:#fff}

/* ---------- Layout ---------- */
.wrap{width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--pad-x)}
.wrap--narrow{max-width:1180px}
.wrap--text{max-width:860px}
.section{padding:var(--sec-y) 0}
.section--sm{padding:110px 0}
.section--xs{padding:80px 0}
.section--flush-top{padding-top:0}
.page-hero + .section{padding-top:110px}
.section--flush-bot{padding-bottom:0}
.bg-surface{background:var(--surface)}
.bg-surface-2{background:var(--surface-2)}
.bg-sage{background:var(--sage)}
.bg-sage .box{background:#fff; border-color:transparent}
.bg-dark{background:var(--dark); color:rgba(255,255,255,.72)}
.bg-dark h1,.bg-dark h2,.bg-dark h3,.bg-dark h4,.bg-dark h5,.bg-dark h6{color:#fff}

.grid{display:grid; gap:30px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}

/* ---------- Eyebrow + section heads ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--display); font-size:15px; line-height:1.6; font-weight:500;
  color:var(--muted); margin:0 0 18px;
}
.eyebrow::before{content:""; width:34px; height:1px; background:currentColor; flex:0 0 34px}
.bg-dark .eyebrow{color:rgba(255,255,255,.6)}
.sec-head{max-width:660px; margin-bottom:60px}
.sec-head--center{margin-left:auto; margin-right:auto; text-align:center}
.sec-head--center .eyebrow::after{content:""; width:34px; height:1px; background:currentColor}
.sec-head p{color:var(--muted-2)}
.bg-dark .sec-head p{color:rgba(255,255,255,.7)}
.sec-head--split{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; max-width:none}
.sec-head--split > div:first-child{max-width:660px}
em.hl{font-style:normal; color:var(--muted)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:45px; padding:6px 33px 7px; border-radius:25px; border:1px solid var(--ink);
  font-family:var(--display); font-size:15px; font-weight:400; line-height:1.6; color:var(--ink);
  background:transparent; transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  white-space:nowrap;
}
.btn .arw{transition:transform .3s var(--ease)}
.btn:hover{background:var(--ink); color:#fff; border-color:var(--ink)}
.btn:hover .arw{transform:translate(3px,-3px)}
.btn--solid{background:var(--ink); color:#fff}
.btn--solid:hover{background:transparent; color:var(--ink)}
.btn--light{border-color:var(--line); color:var(--ink)}
.btn--light:hover{background:var(--ink); color:#fff; border-color:var(--ink)}
.bg-dark .btn--light{border-color:rgba(255,255,255,.45); color:#fff}
.bg-dark .btn--light:hover{background:#fff; color:var(--ink); border-color:#fff}
.btn--glass{background:rgba(255,255,255,.2); border-color:transparent; color:#fff; backdrop-filter:blur(6px)}
.btn--glass:hover{background:#fff; color:var(--ink)}
.btn--white{background:#fff; border-color:#fff; color:var(--ink)}
.btn--white:hover{background:transparent; color:#fff; border-color:rgba(255,255,255,.6)}
.btn--sm{min-height:38px; padding:4px 24px 5px; font-size:14px}

.tlink{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--display); font-size:15px; color:var(--ink);
}
.tlink .arw{transition:transform .3s var(--ease)}
.tlink:hover{color:var(--muted)}
.tlink:hover .arw{transform:translate(3px,-3px)}
.bg-dark .tlink{color:#fff}
.arw{width:11px; height:11px; flex:0 0 11px; display:inline-block}

/* ==========================================================================
   Header
   ========================================================================== */
.topbar{
  background:#E5E5E5; color:var(--body);
  font-size:13px; line-height:1; position:relative; z-index:60;
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px; height:44px}
.topbar-l,.topbar-r{display:flex; align-items:center; gap:34px}
.topbar-item{display:inline-flex; align-items:center; gap:9px; white-space:nowrap}
.topbar-item svg{width:14px; height:14px; opacity:.55; flex:0 0 14px}
.topbar a:hover{color:var(--ink)}

.site-header{
  position:absolute; top:44px; left:0; right:0; z-index:50;
  transition:background .35s var(--ease), box-shadow .35s var(--ease);
}
.site-header .wrap{display:flex; align-items:center; gap:40px; height:110px}
.brand{display:flex; align-items:center; gap:13px; flex:0 0 auto}
.brand img{height:46px; width:auto}
.brand-name{display:flex; flex-direction:column; line-height:1.1}
.brand-name b{font-family:var(--display); font-size:15px; font-weight:500; color:var(--ink); letter-spacing:-.01em; max-width:132px}
.brand-name span{font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:4px}

.nav{margin-left:auto; display:flex; align-items:center; gap:28px}
.nav > li > a{
  font-family:var(--display); font-size:15px; color:var(--ink); position:relative;
  display:flex; align-items:center; height:110px; white-space:nowrap;
}
.nav > li > a::after{
  content:""; position:absolute; left:0; right:100%; bottom:44px; height:1px;
  background:currentColor; transition:right .35s var(--ease);
}
.nav > li > a:hover::after,.nav > li.current > a::after{right:0}
.nav-has > a{gap:6px}
.nav-has > a::before{content:""; width:5px; height:5px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg) translateY(-2px); margin-left:6px; order:2}
.submenu{
  position:absolute; top:100%; left:0; min-width:250px; background:#fff; padding:22px 0;
  box-shadow:0 20px 50px rgba(0,0,0,.1); opacity:0; visibility:hidden; transform:translateY(12px);
  transition:all .3s var(--ease);
}
.nav-has{position:relative}
.nav-has:hover .submenu{opacity:1; visibility:visible; transform:translateY(0)}
.submenu a{display:block; padding:9px 30px; font-family:var(--display); font-size:15px; color:var(--ink)}
.submenu a:hover{color:var(--muted); padding-left:36px}

.header-actions{display:flex; align-items:center; gap:22px; flex:0 0 auto}
.icon-btn{width:22px; height:22px; color:var(--ink); display:grid; place-items:center; opacity:.9}
.icon-btn:hover{opacity:.6}
.burger{width:26px; height:14px; position:relative; display:none}
.burger span{position:absolute; left:0; height:1px; width:100%; background:var(--ink); transition:.3s var(--ease)}
.burger span:nth-child(1){top:0}
.burger span:nth-child(2){top:6px; width:70%}
.burger span:nth-child(3){top:12px}

/* stuck state */
.site-header.is-stuck{
  position:fixed; top:0; background:#fff; box-shadow:0 4px 30px rgba(0,0,0,.07);
  animation:slideDown .4s var(--ease);
}
@keyframes slideDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.site-header.is-stuck .wrap{height:82px}
.site-header.is-stuck .nav > li > a{height:82px}
.site-header.is-stuck .nav > li > a::after{bottom:30px}

/* header on light pages (inner pages w/ light hero) */
.site-header--solid{position:relative; top:0; background:#fff; border-bottom:1px solid var(--line-soft)}

/* mobile drawer */
.drawer{
  position:fixed; inset:0; background:var(--dark); z-index:200; padding:34px var(--pad-x);
  overflow-y:auto; opacity:0; visibility:hidden; pointer-events:none;
  transform:translateX(24px);
  transition:opacity .32s var(--ease), transform .32s var(--ease), visibility 0s linear .32s;
}
.drawer.is-open{
  opacity:1; visibility:visible; pointer-events:auto; transform:none;
  transition:opacity .32s var(--ease), transform .32s var(--ease), visibility 0s;
}
.drawer-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:46px}
.drawer-close{width:30px; height:30px; color:#fff; font-size:26px; line-height:1}
.drawer .brand-name b{color:#fff}
.drawer .brand-name span{color:rgba(255,255,255,.55)}
.drawer nav a{display:block; font-family:var(--display); font-size:26px; color:#fff; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.12)}
.drawer nav a:hover{color:var(--muted)}
.drawer-meta{margin-top:40px; color:rgba(255,255,255,.6); font-size:14px}
.drawer-meta a{color:#fff}

/* ==========================================================================
   Hero (home) — Leroux 3-panel composition
   ========================================================================== */
.hero{background:#fff; padding:186px 0 0; position:relative}
.hero-grid{
  display:grid; grid-template-columns:1.05fr 1.25fr 1fr; gap:30px; align-items:stretch;
  padding-bottom:130px;
}
.hero-copy{padding:36px 0 0}
.hero-copy h1{margin-bottom:24px}
.hero-copy p{color:var(--muted-2); max-width:420px; margin-bottom:34px}
.hero-tile{position:relative; overflow:hidden; min-height:330px; display:flex; flex-direction:column;
  align-items:flex-start; justify-content:space-between; padding:38px 40px}
.hero-tile--img{color:#fff}
.hero-tile--img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform 1.2s var(--ease)}
.hero-tile--img::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(25,39,43,.62) 0%,rgba(25,39,43,.34) 55%,rgba(25,39,43,.55) 100%); z-index:1}
.hero-tile--img:hover img{transform:scale(1.05)}
.hero-tile--img h3,.hero-tile--img .btn{position:relative; z-index:2}
.hero-tile--img h3{color:#fff; max-width:330px}
.hero-tile--pale{background:var(--surface); padding-bottom:0; align-self:stretch}
.hero-tile--pale h3{max-width:300px}
.hero-tile--pale .pale-img{margin:26px -40px 0 0; overflow:hidden}
.hero-tile--pale .pale-img img{width:100%; height:190px; object-fit:cover; transition:transform 1.2s var(--ease)}
.hero-tile--pale:hover .pale-img img{transform:scale(1.05)}

/* stats strip */
.stats{border-top:1px solid var(--line); padding:64px 0 100px}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:30px}
.stat b{display:block; font-family:var(--display); font-size:56px; line-height:1; font-weight:400; color:var(--ink); margin-bottom:12px}
.stat span{font-size:15px; color:var(--muted)}

/* ==========================================================================
   Page hero (inner pages)
   ========================================================================== */
.page-hero{background:var(--surface); padding:88px 0 96px; position:relative}
.page-hero h1{margin-bottom:16px; max-width:820px}
.page-hero p{color:var(--muted-2); max-width:640px; margin:0}
.crumbs{display:flex; gap:10px; align-items:center; font-size:14px; color:var(--muted); margin-bottom:22px}
.crumbs a:hover{color:var(--ink)}
.crumbs span{opacity:.5}

/* ==========================================================================
   Cards
   ========================================================================== */
.card{background:#fff; display:flex; flex-direction:column; height:100%}
.card-media{overflow:hidden; position:relative; aspect-ratio:4/3; background:var(--surface)}
.card-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease)}
.card:hover .card-media img{transform:scale(1.06)}
.card-body{padding:30px 0 0; display:flex; flex-direction:column; flex:1}
.card-body h4{margin-bottom:12px}
.card-body p{color:var(--muted-2); margin-bottom:22px; flex:1}
.card-meta{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.tag{
  font-family:var(--display); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); border-radius:20px; padding:4px 13px;
}
.tag--solid{background:var(--ink); border-color:var(--ink); color:#fff}

/* boxed card (services / why-us) */
.box{
  background:#fff; padding:46px 40px; height:100%; display:flex; flex-direction:column;
  border:1px solid var(--line-soft); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.box:hover{transform:translateY(-6px); box-shadow:0 24px 60px rgba(32,40,45,.09); border-color:transparent}
.box .num{font-family:var(--display); font-size:14px; color:var(--muted); letter-spacing:.1em; margin-bottom:26px}
.box .ico{width:46px; height:46px; margin-bottom:26px; color:var(--ink)}
.box .ico svg{width:100%; height:100%; stroke-width:1.1}
.box h4{margin-bottom:14px}
.box p{color:var(--muted-2); margin-bottom:24px; flex:1}
.bg-surface .box{border-color:transparent}
.bg-dark .box{background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.09)}
.bg-dark .box p{color:rgba(255,255,255,.68)}
.bg-dark .box .ico,.bg-dark .box .num{color:rgba(255,255,255,.75)}

/* ==========================================================================
   Split image / content
   ========================================================================== */
.split{display:grid; grid-template-columns:1fr 1fr; align-items:stretch}
.split-media{position:relative; overflow:hidden; min-height:640px}
.split-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.split-body{display:flex; align-items:center; padding:120px 90px}
.split-body-inner{max-width:560px}
.split--pad-l .split-body{padding-left:var(--pad-x)}

/* about composition: tall image + inset */
.compose{position:relative}
.compose-main img{width:100%; aspect-ratio:7/9; object-fit:cover}
.compose-inset{
  position:absolute; right:-60px; bottom:-50px; width:56%; background:#fff; padding:14px;
}
.compose-inset img{width:100%; aspect-ratio:1/1; object-fit:cover}
.compose-badge{
  position:absolute; left:-40px; top:48px; background:var(--ink); color:#fff;
  padding:26px 30px; max-width:210px;
}
.compose-badge b{display:block; font-family:var(--display); font-size:40px; line-height:1; margin-bottom:8px}
.compose-badge span{font-size:14px; color:rgba(255,255,255,.7); line-height:1.45; display:block}

/* checklist */
.checks{margin:6px 0 32px}
.checks li{display:flex; gap:14px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--line-soft)}
.checks li:last-child{border-bottom:0}
.checks svg{width:17px; height:17px; flex:0 0 17px; margin-top:4px; color:var(--ink)}
.bg-dark .checks li{border-color:rgba(255,255,255,.12)}
.bg-dark .checks svg{color:#fff}

/* ==========================================================================
   Process (numbered rows)
   ========================================================================== */
.steps{border-top:1px solid var(--line)}
.step{
  display:grid; grid-template-columns:120px 1.1fr 2fr; gap:40px; align-items:start;
  padding:44px 0; border-bottom:1px solid var(--line); transition:padding .4s var(--ease);
}
.step:hover{padding-left:16px}
.step .n{font-family:var(--display); font-size:37px; line-height:1; color:var(--line); transition:color .35s var(--ease)}
.step:hover .n{color:var(--ink)}
.step h4{margin:0}
.step p{color:var(--muted-2); margin:0}
.bg-dark .steps,.bg-dark .step{border-color:rgba(255,255,255,.13)}
.bg-dark .step .n{color:rgba(255,255,255,.28)}
.bg-dark .step:hover .n{color:#fff}
.bg-dark .step p{color:rgba(255,255,255,.68)}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.quotes{display:grid; grid-template-columns:repeat(2,1fr); gap:30px}
.quote{background:#fff; padding:46px 44px; border:1px solid var(--line-soft)}
.quote .mark{font-family:var(--display); font-size:56px; line-height:.7; color:var(--line); display:block; margin-bottom:22px}
.quote p{font-size:17px; line-height:1.72; color:var(--body); margin-bottom:26px}
.quote cite{font-style:normal; font-family:var(--display); font-size:16px; color:var(--ink); display:block}
.quote cite span{display:block; font-family:var(--text); font-size:14px; color:var(--muted); margin-top:4px}

/* ==========================================================================
   Course list rows
   ========================================================================== */
.crow{
  display:grid; grid-template-columns:220px 1fr auto; gap:44px; align-items:center;
  padding:34px 0; border-bottom:1px solid var(--line);
}
.crow:first-child{border-top:1px solid var(--line)}
.crow-media{overflow:hidden; aspect-ratio:4/3}
.crow-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease)}
.crow:hover .crow-media img{transform:scale(1.06)}
.crow h4{margin-bottom:10px}
.crow p{color:var(--muted-2); margin:0; max-width:640px}
.crow-side{text-align:right; min-width:200px}
.crow-side b{display:block; font-family:var(--display); font-size:15px; color:var(--ink); margin-bottom:6px}
.crow-side > span{display:block; font-size:14px; color:var(--muted); line-height:1.5}
.crow-side .tlink{display:inline-flex; font-size:14px; margin-top:14px}

/* course detail modules */
.modules{counter-reset:m}
.modules li{
  counter-increment:m; display:flex; gap:18px; padding:16px 0; border-bottom:1px solid var(--line-soft);
  align-items:baseline;
}
.modules li::before{
  content:counter(m,decimal-leading-zero); font-family:var(--display); font-size:14px;
  color:var(--muted); flex:0 0 34px;
}

/* ==========================================================================
   CTA band
   ========================================================================== */
.cta-band{position:relative; padding:130px 0; overflow:hidden; text-align:center}
.cta-band img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0}
.cta-band::after{content:""; position:absolute; inset:0; background:rgba(25,39,43,.82); z-index:1}
.cta-band .wrap{position:relative; z-index:2}
.cta-band h2{color:#fff; max-width:760px; margin:0 auto 20px}
.cta-band p{color:rgba(255,255,255,.72); max-width:600px; margin:0 auto 36px}

/* ==========================================================================
   Contact + form
   ========================================================================== */
.contact-grid{display:grid; grid-template-columns:1fr 1.25fr; gap:80px; align-items:start}
.cinfo li{display:flex; gap:18px; padding:24px 0; border-bottom:1px solid var(--line)}
.cinfo li:first-child{border-top:1px solid var(--line)}
.cinfo svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px; color:var(--ink)}
.cinfo b{display:block; font-family:var(--display); font-size:16px; color:var(--ink); margin-bottom:5px; font-weight:500}
.cinfo span,.cinfo a{color:var(--muted-2); font-size:15px; line-height:1.6}
.cinfo a:hover{color:var(--ink)}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px}
.field{display:flex; flex-direction:column}
.field--full{grid-column:1/-1}
.field label{font-family:var(--display); font-size:14px; color:var(--ink); margin-bottom:9px}
.field input,.field select,.field textarea{
  border:0; border-bottom:1px solid var(--line); background:transparent; padding:12px 0;
  font-size:15px; color:var(--ink); transition:border-color .3s var(--ease);
}
.field textarea{min-height:120px; resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted); opacity:.75}
.form-note{font-size:13px; color:var(--muted); margin-top:18px}
.form-msg{margin-top:18px; font-size:14px; padding:12px 16px; border-radius:4px; display:none}
.form-msg.ok{display:block; background:#EAF3EC; color:#1F5130}
.form-msg.err{display:block; background:#FBEDED; color:#8A2020}

.map{width:100%; height:460px; border:0; filter:grayscale(1) contrast(1.05); display:block}

/* ==========================================================================
   Blog
   ========================================================================== */
.post-card .card-media{aspect-ratio:3/2}
.datechip{
  position:absolute; left:20px; top:20px; z-index:2; background:#fff; color:var(--ink);
  font-family:var(--display); text-align:center; padding:11px 14px; line-height:1;
}
.datechip b{display:block; font-size:20px; margin-bottom:4px}
.datechip span{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted)}

.article{max-width:820px; margin:0 auto}
.article h2{font-size:30px; margin:52px 0 18px}
.article h3{font-size:23px; margin:40px 0 14px}
.article p,.article li{font-size:16px; line-height:1.78; color:var(--body)}
.article ul{margin:0 0 24px; padding-left:0}
.article ul li{position:relative; padding-left:26px; margin-bottom:10px}
.article ul li::before{content:""; position:absolute; left:0; top:11px; width:8px; height:1px; background:var(--ink)}
.article blockquote{
  margin:38px 0; padding:30px 34px; background:var(--surface); border-left:2px solid var(--ink);
  font-family:var(--display); font-size:20px; line-height:1.6; color:var(--ink);
}
.article-meta{display:flex; gap:20px; align-items:center; color:var(--muted); font-size:14px; margin-bottom:34px}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--dark-deep); color:rgba(255,255,255,.62); padding:110px 0 0}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:50px; padding-bottom:80px}
.site-footer h5{color:#fff; margin-bottom:26px; font-size:17px}
.site-footer a:hover{color:#fff}
.footer-brand{display:flex; align-items:center; gap:13px; margin-bottom:24px}
.footer-brand img{height:52px; width:auto}
.footer-brand > span{display:block}
.footer-brand b{font-family:var(--display); font-size:17px; color:#fff; font-weight:500; display:block; line-height:1.3; letter-spacing:-.01em}
.footer-brand > span > span{display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:6px}
.site-footer p{color:rgba(255,255,255,.6); max-width:380px}
.flinks li{margin-bottom:13px}
.flinks a{font-size:15px}
.fcontact li{display:flex; gap:13px; margin-bottom:18px; font-size:15px; line-height:1.6}
.fcontact svg{width:17px; height:17px; flex:0 0 17px; margin-top:4px; opacity:.6}
.socials{display:flex; gap:11px; margin-top:26px}
.socials a{
  width:38px; height:38px; border:1px solid rgba(255,255,255,.2); border-radius:50%;
  display:grid; place-items:center; transition:.3s var(--ease);
}
.socials a:hover{background:#fff; border-color:#fff; color:var(--dark-deep)}
.socials svg{width:15px; height:15px}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.11); padding:28px 0; display:flex;
  justify-content:space-between; align-items:center; gap:20px; font-size:14px; flex-wrap:wrap;
}
.footer-bottom a{color:rgba(255,255,255,.75)}

/* ==========================================================================
   Reveal animation
   ========================================================================== */
.rv{opacity:0; transform:translateY(28px); transition:opacity .85s var(--ease), transform .85s var(--ease)}
.rv.in{opacity:1; transform:none}
.rv-d1{transition-delay:.09s}.rv-d2{transition-delay:.18s}.rv-d3{transition-delay:.27s}
.rv-d4{transition-delay:.36s}.rv-d5{transition-delay:.45s}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1; transform:none; transition:none}
  html{scroll-behavior:auto}
  *{animation-duration:.01ms!important; transition-duration:.01ms!important}
}

/* back to top */
.totop{
  position:fixed; right:30px; bottom:30px; width:46px; height:46px; border-radius:50%;
  background:var(--ink); color:#fff; display:grid; place-items:center; z-index:80;
  opacity:0; visibility:hidden; transform:translateY(12px); transition:.35s var(--ease);
}
.totop.show{opacity:1; visibility:visible; transform:none}
.totop:hover{background:var(--brand)}

/* skip link */
.skip{position:absolute; left:-9999px; top:0; background:#fff; color:var(--ink); padding:12px 20px; z-index:999}
.skip:focus{left:12px; top:12px}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1280px){
  :root{--sec-y:110px; --pad-x:40px}
  h1{font-size:42px}
  h2{font-size:33px}
  .hero-grid{grid-template-columns:1fr 1fr; gap:26px}
  .hero-copy{grid-column:1/-1}
  .split-body{padding:90px 50px}
  .contact-grid{gap:50px}
  .footer-grid{grid-template-columns:1fr 1fr; gap:44px}
}
@media (max-width:1024px){
  .g-4{grid-template-columns:repeat(2,1fr)}
  .g-3{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr); gap:40px}
  .step{grid-template-columns:76px 1fr; gap:24px}
  .step p{grid-column:2}
  .compose-inset{right:0; bottom:-34px; width:50%}
  .compose-badge{left:0}
  .crow{grid-template-columns:160px 1fr; gap:26px}
  .crow-side{grid-column:2; text-align:left; margin-top:6px}
}
@media (max-width:900px){
  :root{--sec-y:88px; --pad-x:26px}
  h1{font-size:35px}
  h2{font-size:28px}
  h3{font-size:23px}
  .topbar-l,.topbar-item--hours{display:none}
  .topbar .wrap{justify-content:center; height:40px}
  .topbar-r{gap:20px; font-size:12px}
  .nav,.header-actions .btn{display:none}
  .burger{display:block}
  .site-header .wrap{height:78px}
  .site-header.is-stuck .wrap{height:70px}
  .hero{padding-top:120px}
  .hero-grid{grid-template-columns:1fr; padding-bottom:70px}
  .hero-tile{min-height:280px; padding:30px 28px}
  .hero-tile--pale .pale-img{margin-right:-28px}
  .stats{padding:46px 0 64px}
  .stat b{font-size:42px}
  .split{grid-template-columns:1fr}
  .split-media{min-height:380px; order:-1}
  .split-body{padding:70px var(--pad-x)}
  .quotes{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .sec-head--split{flex-direction:column; align-items:flex-start}
  .page-hero{padding:56px 0 62px}
  .compose{margin-bottom:60px}
  .cta-band{padding:88px 0}
  .box{padding:36px 30px}
}
@media (max-width:640px){
  h1{font-size:32px}
  .topbar-item--mail{display:none}
  .g-2,.g-3,.g-4{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr; gap:30px}
  .form-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr; gap:40px}
  .crow{grid-template-columns:1fr}
  .crow-media{aspect-ratio:16/9}
  .crow-side{grid-column:1}
  .step{grid-template-columns:1fr; gap:10px}
  .footer-bottom{flex-direction:column; text-align:center}
  .compose-inset,.compose-badge{position:static; width:auto; margin-top:16px; padding:0}
  .compose-badge{padding:24px 26px; margin-top:0}
  .article blockquote{padding:22px 24px; font-size:18px}
}

/* print */
@media print{
  .site-header,.topbar,.site-footer,.totop,.cta-band{display:none}
  body{color:#000}
}
