/*
Theme Name: RampUp
Theme URI: https://rampuponline.com/
Author: RampUp Online
Description: A fast, customiser-driven theme for digital marketing agencies. Kinetic hero, parallax image bands, and a full set of editable homepage sections. No page builder required.
Version: 1.4.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rampup
Tags: business, portfolio, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks
*/

/* Colour variables are printed inline by rampup_customizer_css() in functions.php,
   driven by the Customizer. Do not hardcode brand colours below. */

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip-link:focus{position:fixed;top:10px;left:10px;z-index:999;background:var(--acc);color:var(--acc-ink);padding:10px 16px;width:auto;height:auto;clip:auto;}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-0.04em;line-height:1.02;}
p{margin:0;}

/* ---------- header ---------- */
.hd{position:sticky;top:0;z-index:40;background:var(--bg-blur);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-0.02em;font-size:1.0625rem;white-space:nowrap;min-width:0;}
.brand i{color:var(--dim);font-style:normal;font-weight:400;}
.brand img{max-height:34px;width:auto;}
.nav{display:flex;align-items:center;gap:26px;font-size:.9375rem;}
.nav ul{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0;}
.nav a{color:var(--dim);}
.nav a:hover,.nav .current-menu-item>a{color:var(--fg);}
.cta{background:var(--acc);color:var(--acc-ink)!important;padding:10px 20px;border-radius:2px;font-weight:600;font-size:.9375rem;}
.cta:hover{background:var(--fg);}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:3px;color:var(--fg);cursor:pointer;padding:9px 11px;line-height:0;}
.mt-bars{display:inline-block;width:18px;}
.mt-bars span{display:block;height:2px;background:var(--fg);border-radius:2px;}
.mt-bars span:first-child{margin-bottom:5px;}
.cta-in-nav{display:none;}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:15px 30px;border-radius:2px;font-weight:600;font-size:1rem;background:var(--acc);color:var(--acc-ink);}
.btn:hover{background:var(--fg);color:var(--acc-ink);}
.btn-o{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1px var(--line);}
.btn-o:hover{background:var(--fg);color:var(--acc-ink);box-shadow:none;}

/* ---------- hero ---------- */
.hero{padding:120px 0 90px;}
.hero h1{font-size:clamp(2.9rem,10.5vw,8.5rem);}
.ln{display:block;overflow:hidden;}
.ln>span{display:block;transform:translateY(105%);animation:rise .95s cubic-bezier(.16,1,.3,1) forwards;}
.ln:nth-child(1)>span{animation-delay:.05s}
.ln:nth-child(2)>span{animation-delay:.17s}
.ln:nth-child(3)>span{animation-delay:.29s}
@keyframes rise{to{transform:translateY(0)}}
.hl{color:var(--acc);font-style:normal;}
.hero-sub{margin-top:34px;max-width:32rem;color:var(--dim);font-size:1.125rem;opacity:0;animation:fade .8s ease .62s forwards;}
.hero-act{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px;opacity:0;animation:fade .8s ease .74s forwards;}
.hero-act.static{opacity:1;animation:none;}
@keyframes fade{to{opacity:1}}

/* ---------- marquee ---------- */
.mq{border-block:1px solid var(--line);padding:20px 0;overflow:hidden;white-space:nowrap;}
.mq-t{display:inline-block;animation:slide var(--mq-speed,34s) linear infinite;font-size:clamp(1.4rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-0.03em;}
.mq-t span{color:var(--dim);}
.mq-t b{color:var(--acc);font-weight:700;margin:0 20px;}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- parallax bands ---------- */
.band-img{position:relative;height:min(78vh,620px);overflow:hidden;background:#000;}
.band-img img{position:absolute;inset:-14% 0;width:100%;height:128%;object-fit:cover;opacity:var(--band-op,.72);will-change:transform;}
.band-cap{position:absolute;left:0;right:0;bottom:0;padding:36px 0;background:linear-gradient(to top,var(--band-fade),transparent);}
.band-cap h2{font-size:clamp(1.8rem,5vw,3.6rem);}

/* ---------- split panel ---------- */
.split2{display:grid;grid-template-columns:1fr 1fr;min-height:300px;}
.split2 .a{background:var(--bg2);padding:60px 40px;display:flex;align-items:center;}
.split2 .b{background:var(--acc);color:var(--acc-ink);padding:60px 40px;display:flex;align-items:center;}
.split2 h2{font-size:clamp(1.6rem,3.6vw,2.9rem);}
.split2 .b p{margin-top:14px;font-weight:500;opacity:.82;}

/* ---------- sections ---------- */
.sec{padding:100px 0;}
.eyebrow{color:var(--acc);font-size:.875rem;font-weight:600;margin-bottom:16px;}
.sec h2{font-size:clamp(2rem,5vw,3.4rem);max-width:18ch;}
.sec .lede{margin-top:20px;color:var(--dim);max-width:36rem;font-size:1.0625rem;}

/* ---------- service rows ---------- */
.svcs{margin-top:56px;border-top:1px solid var(--line);}
.svc{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line);transition:padding-left .4s cubic-bezier(.16,1,.3,1);}
.svc:hover{padding-left:14px;}
.svc .n{color:var(--dim);font-size:.875rem;font-weight:600;}
.svc h3{font-size:clamp(1.3rem,2.8vw,2rem);}
.svc:hover h3{color:var(--acc);}
.svc p{color:var(--dim);font-size:.9375rem;margin-top:8px;max-width:44ch;}
.svc .pr{color:var(--dim);font-size:.9375rem;white-space:nowrap;}

/* ---------- process (replaces the old stats grid) ---------- */
.proc{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:64px;}
.proc-i{background:var(--bg);padding:38px 30px;}
.proc-i .k{color:var(--acc);font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line);}
.proc-i h3{font-size:1.25rem;margin-bottom:10px;}
.proc-i p{color:var(--dim);font-size:.9375rem;}

/* ---------- duo ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.duo-img{overflow:hidden;background:#000;aspect-ratio:4/3;}
.duo-img img{width:100%;height:100%;object-fit:cover;opacity:var(--band-op,.85);}

/* ---------- closing ---------- */
.end{padding:120px 0;border-top:1px solid var(--line);}
.end h2{font-size:clamp(2.2rem,6.5vw,4.6rem);max-width:14ch;}

/* ---------- reveals ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1);}
.rv.on{opacity:1;transform:none;}

/* ---------- content pages ---------- */
.page-head{padding:90px 0 20px;}
.page-head h1{font-size:clamp(2.4rem,6vw,4.2rem);}
.entry{padding:40px 0 90px;}
.entry .wrap{max-width:760px;}
.entry p,.entry ul,.entry ol,.entry blockquote,.entry figure,.entry pre,.entry table{margin:0 0 1.4em;}
.entry h2{font-size:1.9rem;margin:2em 0 .6em;}
.entry h3{font-size:1.4rem;margin:1.8em 0 .5em;}
.entry a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;}
.entry img{margin:2em 0;}
.entry blockquote{border-left:2px solid var(--acc);padding-left:22px;color:var(--dim);}
.entry code,.entry pre{background:var(--bg2);}
.entry pre{padding:18px;overflow:auto;}
.post-meta{color:var(--dim);font-size:.9375rem;margin-top:14px;}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
.card{background:var(--bg);padding:32px 28px;}
.card h2{font-size:1.35rem;margin-bottom:10px;}
.card p{color:var(--dim);font-size:.9375rem;}
.pagination{padding:40px 0;display:flex;gap:12px;flex-wrap:wrap;}
.pagination .page-numbers{padding:8px 14px;box-shadow:inset 0 0 0 1px var(--line);color:var(--dim);}
.pagination .current{background:var(--acc);color:var(--acc-ink);box-shadow:none;}

/* ---------- footer ---------- */
.ft{border-top:1px solid var(--line);padding:62px 0 44px;color:var(--dim);font-size:.9375rem;}
.ft a:hover{color:var(--fg);}
.ft-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;padding-bottom:48px;}
.ft-brand .brand-link{font-weight:600;font-size:1.0625rem;color:var(--fg);letter-spacing:-0.02em;}
.ft-blurb{margin-top:16px;max-width:34ch;line-height:1.6;}
.ft-col h2{font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);margin-bottom:18px;}
.ft-col ul{list-style:none;margin:0;padding:0;}
.ft-col li{padding:6px 0;}
.ft-col li.plain{color:var(--dim);opacity:.8;}
.ft-cta{display:inline-block;margin-top:12px;color:var(--acc);font-weight:600;}
.ft-base{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.875rem;}
.ft-legal ul{list-style:none;display:flex;gap:20px;margin:0;padding:0;flex-wrap:wrap;}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .ft-cols{grid-template-columns:1fr;gap:34px;}
  .ft{padding:44px 0 36px;}
  .split2,.duo{grid-template-columns:1fr;}
  .proc{grid-template-columns:1fr;}
  .duo{gap:32px;}
  .svc{grid-template-columns:1fr;gap:6px;}
  .svc .pr{margin-top:10px;}
  .sec,.end{padding:70px 0;}
  .hero{padding:70px 0 56px;}
  .wrap{padding:0 20px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation:none!important;transition:none!important;}
  .ln>span{transform:none;}
  .hero-sub,.hero-act,.rv{opacity:1;transform:none;}
}

/* ---------- services page rows ---------- */
.srow{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);}
.srow:last-of-type{border-bottom:1px solid var(--line);}
.srow-t{padding:56px 56px 56px 0;}
.srow.flip .srow-t{order:2;padding:56px 0 56px 56px;}
.srow.flip .srow-i{order:1;}
.srow-i{overflow:hidden;background:#000;}
.srow-i img{width:100%;height:100%;object-fit:cover;min-height:340px;opacity:var(--band-op,.85);}
.srow .n{display:block;color:var(--dim);font-size:.875rem;font-weight:600;margin-bottom:14px;}
.srow h2{font-size:clamp(1.6rem,3.4vw,2.4rem);}
.srow-p{margin-top:26px;font-weight:600;font-size:1.0625rem;}
.pts{margin:22px 0 0;padding:0;list-style:none;}
.pts li{font-size:.9688rem;color:var(--dim);padding:7px 0 7px 20px;position:relative;}
.pts li::before{content:"";position:absolute;left:0;top:16px;width:7px;height:1px;background:var(--acc);}

/* ---------- contact ---------- */
.cdetail{margin:0;}
.cdetail dt{color:var(--dim);font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-top:26px;}
.cdetail dt:first-child{margin-top:0;}
.cdetail dd{margin:6px 0 0;font-size:1.0625rem;}
.cdetail dd a{color:var(--acc);}
.cdetail dd p{margin:0;}
.cform{background:var(--bg2);padding:34px 30px;}
.cform input[type=text],.cform input[type=email],.cform input[type=tel],.cform input[type=url],.cform textarea,.cform select{
  width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:2px;padding:12px 14px;font:inherit;font-size:1rem;margin-bottom:16px;
}
.cform textarea{min-height:140px;resize:vertical;}
.cform label{display:block;font-size:.9375rem;color:var(--dim);margin-bottom:6px;}
.cform input[type=submit],.cform button[type=submit]{
  background:var(--acc);color:var(--acc-ink);border:0;border-radius:2px;padding:14px 28px;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;
}
.cform input[type=submit]:hover,.cform button[type=submit]:hover{background:var(--fg);}

/* ---------- legal pages ---------- */
.legal .entry .wrap{max-width:720px;}
.legal .entry h2{font-size:1.5rem;}
.legal .entry h3{font-size:1.15rem;}
.legal .updated{color:var(--dim);font-size:.9375rem;margin-top:14px;}

@media(max-width:860px){
  .srow,.srow.flip{grid-template-columns:1fr;}
  .srow-t,.srow.flip .srow-t{padding:40px 0;order:2;}
  .srow-i,.srow.flip .srow-i{order:1;}
  .srow-i img{min-height:240px;}
}

.brand-link{display:flex;align-items:center;gap:10px;}
.brand-link svg{flex:0 0 auto;}

/* ---------- mobile header ---------- */
@media(max-width:860px){
  .hd-in{gap:12px;}
  .brand{font-size:1rem;}
  .brand img{max-height:28px;}
  .menu-toggle{display:inline-block;}
  .cta-desktop{display:none;}
  .nav{position:static;}
  .nav ul{display:none;}
  .nav.open{position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:6px 20px 22px;}
  .nav.open ul{display:flex;flex-direction:column;align-items:stretch;gap:0;}
  .nav.open ul li{width:100%;border-bottom:1px solid var(--line);}
  .nav.open ul li a{display:block;padding:15px 0;font-size:1.0625rem;color:var(--fg);}
  .nav.open .cta-in-nav{display:block;text-align:center;margin-top:18px;padding:14px 20px;font-size:1rem;}
}
