/*
  aceprodesign.com (Build 42) | Digital & Web Design Agency | Tuskegee AL / USD
  Theme: Warm Off-White #FFFCF7 + Amber #D97706 (FIRST AMBER in 42 builds!)
  Nav: VERTICAL LEFT SIDEBAR (FIRST in 42 builds - all previous horizontal!)
  Hero: FULL-HEIGHT SPLIT (type left + dark image right)
  Work: HORIZONTAL SCROLLING CARDS
  Services: 3-COL GRID CARDS with hover lift
  Process: ALTERNATING VERTICAL TIMELINE
  Testimonials: STATIC 2x3 GRID
  Pricing: MAGAZINE-STYLE STACKED CARDS
  FAQ: SINGLE COLUMN ACCORDION with amber indicator
  Footer: CENTERED MINIMAL
  Fonts: Bebas Neue (display headings) + Mulish (body) - BOTH first use in 42 builds!
  CSS prefix: ap-
*/
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Mulish:wght@300;400;500;600;700;800&display=swap');

:root {
  --ap-bg:      #FFFCF7;
  --ap-warm:    #FEF9EE;
  --ap-sand:    #F5EDD9;
  --ap-sand2:   #E8D9C0;
  --ap-mid:     #A8A29E;
  --ap-dim:     #78716C;
  --ap-dark:    #292524;
  --ap-ink:     #1C1917;
  --ap-amber:   #D97706;
  --ap-amber2:  #B45309;
  --ap-amber3:  #92400E;
  --ap-ambert:  rgba(217,119,6,.08);
  --ap-ambert2: rgba(217,119,6,.15);
  --ap-white:   #FFFCF7;
  --ap-sb:      200px;   /* sidebar width */
  --ap-max:     1020px;
  --ap-r:       3px;
  --ap-r2:      6px;
  --ap-r3:      12px;
  --ap-fh:      'Bebas Neue', system-ui, sans-serif;
  --ap-fb:      'Mulish', system-ui, sans-serif;
  --ap-ease:    all 0.22s cubic-bezier(.4,0,.2,1);
  --ap-sh:      0 2px 20px rgba(28,25,23,.07);
  --ap-sh2:     0 8px 40px rgba(28,25,23,.14);
  --ap-mob-h:   58px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--ap-bg); color:var(--ap-ink); font-family:var(--ap-fb); font-size:1rem; line-height:1.7; overflow-x:hidden; }
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
input,textarea,select { font-family:inherit; }
address { font-style:normal; }

/* Bebas Neue headings - tall, condensed, impactful */
h1 { font-family:var(--ap-fh); font-size:clamp(4rem,8vw,9rem); font-weight:400; line-height:.88; letter-spacing:.02em; }
h2 { font-family:var(--ap-fh); font-size:clamp(2.8rem,5vw,6rem); font-weight:400; line-height:.88; letter-spacing:.02em; }
h3 { font-family:var(--ap-fb); font-size:1.05rem; font-weight:800; }
p  { font-size:.9rem; line-height:1.82; color:var(--ap-dim); }

/* ============================================================
   VERTICAL LEFT SIDEBAR (FIRST in 42 builds!)
   ============================================================ */
.ap-sidebar {
  position:fixed; left:0; top:0; bottom:0; width:var(--ap-sb);
  background:var(--ap-ink); display:flex; flex-direction:column;
  z-index:900; border-right:1px solid rgba(255,255,255,.06);
  overflow:hidden;
}
.ap-sb-logo {
  padding:1.6rem 1.4rem .8rem;
  border-bottom:1px solid rgba(255,255,255,.06);
  flex-shrink:0;
}
.ap-sb-logo a {
  font-family:var(--ap-fh); font-size:1.2rem; letter-spacing:.06em;
  color:var(--ap-white); line-height:1;
}
.ap-sb-logo span { color:var(--ap-amber); }
.ap-sb-tag { font-size:.48rem; font-weight:600; color:rgba(255,255,255,.2); letter-spacing:.14em; text-transform:uppercase; margin-top:.2rem; }
.ap-sb-nav {
  flex:1; padding:1rem 0; overflow-y:auto; display:flex; flex-direction:column;
}
.ap-sb-nl {
  font-family:var(--ap-fb); font-size:.84rem; font-weight:700; color:rgba(255,255,255,.35);
  padding:.56rem 1.4rem; display:flex; align-items:center; justify-content:space-between;
  transition:color .14s,background .14s; border-left:2px solid transparent; letter-spacing:.02em;
}
.ap-sb-nl:hover,.ap-sb-nl.ap-on { color:var(--ap-white); border-left-color:var(--ap-amber); background:rgba(255,255,255,.04); }
.ap-sb-svc-h { font-size:.38rem; font-weight:800; text-transform:uppercase; letter-spacing:.28em; color:rgba(255,255,255,.14); padding:.7rem 1.4rem .2rem; margin-top:.4rem; }
.ap-sb-svc-lk {
  font-family:var(--ap-fb); font-size:.74rem; color:rgba(255,255,255,.22);
  padding:.34rem 1.4rem .34rem 2rem; transition:color .14s; display:block; letter-spacing:.01em;
}
.ap-sb-svc-lk:hover { color:var(--ap-amber); }
.ap-sb-foot {
  padding:1.2rem 1.4rem; border-top:1px solid rgba(255,255,255,.06); flex-shrink:0;
}
.ap-sb-contact { font-size:.62rem; color:rgba(255,255,255,.18); line-height:1.7; margin-bottom:.7rem; }
.ap-sb-contact a { color:rgba(255,255,255,.25); transition:color .14s; }
.ap-sb-contact a:hover { color:var(--ap-amber); }

/* ============================================================
   MAIN CONTENT AREA (offset by sidebar)
   ============================================================ */
.ap-main { margin-left:var(--ap-sb); }
.ap-shell { max-width:var(--ap-max); margin:0 auto; padding:0 3rem; }
.ap-slab  { padding:7rem 0; }
.ap-eyebrow {
  font-family:var(--ap-fb); font-size:.48rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.32em; color:var(--ap-amber); display:inline-block;
}

/* ============================================================
   FULL-HEIGHT SPLIT HERO (type left + dark image right)
   ============================================================ */
.ap-hero { display:grid; grid-template-columns:1.05fr .95fr; min-height:100vh; }
.ap-hero-left {
  background:var(--ap-bg); display:flex; flex-direction:column;
  justify-content:flex-end; padding:5rem 3rem 4rem;
  position:relative; overflow:hidden;
}
/* Subtle dot grid on hero left */
.ap-hero-left::before {
  content:''; position:absolute; inset:0;
  background-image:radial-gradient(circle,var(--ap-sand) 1px,transparent 1px);
  background-size:28px 28px; opacity:.6; pointer-events:none;
}
.ap-hero-eyebrow { margin-bottom:1rem; position:relative; }
.ap-hero-h1 { color:var(--ap-ink); position:relative; margin-bottom:1.2rem; max-width:10ch; }
.ap-hero-h1 em { color:var(--ap-amber); font-style:normal; }
.ap-hero-sub { max-width:40ch; color:var(--ap-dim); font-size:.94rem; margin-bottom:2.2rem; position:relative; }
.ap-hero-acts { display:flex; gap:.6rem; flex-wrap:wrap; position:relative; }
.ap-hero-stats { display:flex; gap:2.5rem; margin-top:4rem; padding-top:2rem; border-top:1px solid var(--ap-sand2); position:relative; }
.ap-stat-n { font-family:var(--ap-fh); font-size:2.4rem; color:var(--ap-ink); line-height:1; letter-spacing:.02em; }
.ap-stat-l { font-size:.54rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ap-mid); margin-top:.12rem; }
.ap-hero-right { background:var(--ap-ink); position:relative; overflow:hidden; }
.ap-hero-right img { width:100%; height:100%; object-fit:cover; opacity:.22; }
/* Amber gradient overlay */
.ap-hero-right::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(217,119,6,.18) 0%,transparent 60%);
}
/* Large rotated number decoration */
.ap-hero-deco {
  position:absolute; top:50%; right:1.5rem; transform:translateY(-50%);
  font-family:var(--ap-fh); font-size:22rem; color:rgba(255,255,255,.03);
  line-height:1; letter-spacing:-.02em; pointer-events:none;
}
/* Amber edge accent */
.ap-hero-left::after {
  content:''; position:absolute; right:0; top:20%; bottom:20%;
  width:2px; background:linear-gradient(to bottom,transparent,var(--ap-amber),transparent);
}

/* ============================================================
   CLIENT TICKER TAPE
   ============================================================ */
.ap-tape { background:var(--ap-ink); overflow:hidden; border-bottom:1px solid rgba(255,255,255,.05); }
.ap-tape-inner { display:flex; gap:0; width:max-content; animation:apTape 40s linear infinite; padding:.6rem 0; }
.ap-tape:hover .ap-tape-inner { animation-play-state:paused; }
@keyframes apTape { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.ap-tape-item { font-family:var(--ap-fh); font-size:.9rem; letter-spacing:.12em; color:rgba(255,255,255,.15); padding:0 2.5rem; white-space:nowrap; border-right:1px solid rgba(255,255,255,.05); }
.ap-tape-dot { color:var(--ap-amber); padding:0 .3rem; opacity:.4; }

/* ============================================================
   HORIZONTAL SCROLLING WORK CARDS
   ============================================================ */
.ap-work-hscroll { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; -ms-overflow-style:none; cursor:grab; }
.ap-work-hscroll::-webkit-scrollbar { display:none; }
.ap-work-hscroll.is-dragging { cursor:grabbing; }
.ap-work-track { display:flex; gap:1.2rem; padding:0 3rem 2rem; width:max-content; }
.ap-work-card {
  width:340px; flex-shrink:0; background:var(--ap-ink); border-radius:var(--ap-r3);
  overflow:hidden; position:relative; cursor:pointer; transition:transform .22s;
}
.ap-work-card:hover { transform:translateY(-4px); }
.ap-wc-img { height:220px; position:relative; overflow:hidden; }
.ap-wc-img img { width:100%; height:100%; object-fit:cover; opacity:.28; transition:opacity .3s; }
.ap-work-card:hover .ap-wc-img img { opacity:.38; }
.ap-wc-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(28,25,23,.9) 0%,transparent 55%); }
.ap-wc-tags { display:flex; gap:.2rem; flex-wrap:wrap; position:absolute; top:.8rem; right:.8rem; }
.ap-wc-tag { font-size:.42rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; background:rgba(217,119,6,.2); color:rgba(255,255,255,.7); border:1px solid rgba(217,119,6,.25); padding:.08rem .35rem; border-radius:var(--ap-r); }
.ap-wc-info { padding:1rem 1.2rem; }
.ap-wc-year { font-size:.58rem; color:rgba(255,255,255,.2); margin-bottom:.1rem; }
.ap-wc-nm { font-family:var(--ap-fh); font-size:1.2rem; color:var(--ap-white); letter-spacing:.04em; margin-bottom:.1rem; }
.ap-wc-scope { font-size:.68rem; color:rgba(255,255,255,.3); }
.ap-wc-result { font-size:.72rem; color:rgba(217,119,6,.7); margin-top:.4rem; line-height:1.5; }

/* ============================================================
   3-COL SERVICE GRID CARDS
   ============================================================ */
.ap-svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.ap-svc-card {
  background:var(--ap-white); border:1.5px solid var(--ap-sand2);
  border-radius:var(--ap-r3); padding:1.8rem; position:relative; overflow:hidden;
  transition:var(--ap-ease); cursor:pointer;
}
.ap-svc-card:hover { border-color:var(--ap-amber); box-shadow:0 6px 28px rgba(217,119,6,.12); transform:translateY(-3px); }
.ap-svc-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--ap-amber); transform:scaleX(0); transform-origin:left;
  transition:transform .2s;
}
.ap-svc-card:hover::before { transform:scaleX(1); }
.ap-sc-num { font-family:var(--ap-fh); font-size:3rem; color:var(--ap-sand); letter-spacing:.02em; line-height:1; margin-bottom:.5rem; }
.ap-sc-ico { width:34px; height:34px; background:var(--ap-ambert); border-radius:var(--ap-r2); display:flex; align-items:center; justify-content:center; color:var(--ap-amber); margin-bottom:.6rem; }
.ap-sc-nm { font-family:var(--ap-fb); font-size:.96rem; font-weight:800; color:var(--ap-ink); margin-bottom:.3rem; }
.ap-sc-tag { font-size:.6rem; font-weight:700; color:var(--ap-amber); margin-bottom:.5rem; }
.ap-sc-p { font-size:.8rem; line-height:1.72; margin-bottom:.9rem; }
.ap-sc-lk { display:flex; align-items:center; gap:.3rem; font-size:.78rem; font-weight:700; color:var(--ap-dim); transition:color .14s; }
.ap-svc-card:hover .ap-sc-lk { color:var(--ap-amber); }

/* ============================================================
   ALTERNATING VERTICAL TIMELINE PROCESS
   ============================================================ */
.ap-timeline { position:relative; max-width:760px; margin:2.5rem auto 0; }
.ap-timeline::before {
  content:''; position:absolute; left:50%; top:0; bottom:0;
  width:1px; background:var(--ap-sand2); transform:translateX(-50%);
}
.ap-tl-item { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-bottom:3rem; position:relative; }
.ap-tl-item:nth-child(even) .ap-tl-box { grid-column:2; }
.ap-tl-item:nth-child(even) .ap-tl-num { grid-column:1; grid-row:1; text-align:right; padding-right:2rem; }
.ap-tl-item:nth-child(odd) .ap-tl-box { grid-column:1; }
.ap-tl-item:nth-child(odd) .ap-tl-num { grid-column:2; grid-row:1; padding-left:2rem; }
/* Center dot */
.ap-tl-item::before {
  content:''; position:absolute; left:50%; top:1rem; width:10px; height:10px;
  background:var(--ap-amber); border-radius:50%; transform:translateX(-50%);
  border:2px solid var(--ap-bg);
}
.ap-tl-box { background:var(--ap-white); border:1px solid var(--ap-sand2); border-radius:var(--ap-r3); padding:1.4rem 1.6rem; }
.ap-tl-box:hover { border-color:var(--ap-amber); }
.ap-tl-h { font-family:var(--ap-fb); font-size:.88rem; font-weight:800; color:var(--ap-ink); margin-bottom:.3rem; }
.ap-tl-p { font-size:.8rem; line-height:1.76; }
.ap-tl-num { font-family:var(--ap-fh); font-size:4.5rem; color:var(--ap-sand); letter-spacing:.02em; line-height:1; align-self:center; }

/* ============================================================
   STATIC 2x3 TESTIMONIAL GRID
   ============================================================ */
.ap-testi-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2.5rem; }
.ap-testi-card { background:var(--ap-ink); border-radius:var(--ap-r3); padding:1.8rem; display:flex; flex-direction:column; }
.ap-testi-bar { width:24px; height:2px; background:var(--ap-amber); border-radius:1px; margin-bottom:.9rem; }
.ap-testi-q { font-family:var(--ap-fb); font-size:.84rem; color:rgba(255,252,247,.45); line-height:1.72; flex:1; font-style:italic; margin-bottom:.9rem; }
.ap-testi-who { font-size:.74rem; font-weight:700; color:rgba(255,252,247,.65); }
.ap-testi-co { font-size:.6rem; color:rgba(255,252,247,.25); margin-top:.08rem; }

/* ============================================================
   MAGAZINE-STYLE STACKED PRICING
   ============================================================ */
.ap-price-stack { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:2rem; }
.ap-price-card { border:1.5px solid var(--ap-sand2); border-radius:var(--ap-r3); padding:2rem; position:relative; background:var(--ap-white); }
.ap-price-card.ap-pfeat { background:var(--ap-ink); border-color:var(--ap-amber); }
.ap-pfeat-tag { position:absolute; top:-12px; left:50%; transform:translateX(-50%); font-size:.44rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; background:var(--ap-amber); color:white; padding:.2rem .7rem; border-radius:100px; white-space:nowrap; }
.ap-price-nm { font-family:var(--ap-fh); font-size:1.5rem; letter-spacing:.06em; color:var(--ap-dim); margin-bottom:.1rem; }
.ap-pfeat .ap-price-nm { color:rgba(255,252,247,.35); }
.ap-price-scope { font-size:.62rem; color:var(--ap-sand2); margin-bottom:.3rem; }
.ap-pfeat .ap-price-scope { color:rgba(255,252,247,.2); }
.ap-price-amt { font-family:var(--ap-fh); font-size:4rem; color:var(--ap-ink); line-height:1; letter-spacing:.02em; margin-bottom:.1rem; }
.ap-pfeat .ap-price-amt { color:var(--ap-amber); }
.ap-price-per { font-size:.5rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ap-mid); margin-bottom:.2rem; }
.ap-pfeat .ap-price-per { color:rgba(255,252,247,.25); }
.ap-price-wks { font-size:.7rem; font-style:italic; color:var(--ap-mid); margin-bottom:.4rem; }
.ap-pfeat .ap-price-wks { color:rgba(255,252,247,.3); }
.ap-price-tag2 { font-size:.76rem; color:var(--ap-dim); margin-bottom:.8rem; }
.ap-pfeat .ap-price-tag2 { color:rgba(255,252,247,.3); }
.ap-price-inc { display:flex; flex-direction:column; gap:.22rem; margin-bottom:1.4rem; flex:1; }
.ap-price-row { display:flex; align-items:flex-start; gap:.3rem; font-size:.74rem; color:var(--ap-dim); }
.ap-pfeat .ap-price-row { color:rgba(255,252,247,.5); }
.ap-price-row svg { color:var(--ap-amber); flex-shrink:0; margin-top:.06rem; }

/* ============================================================
   FAQ SINGLE-COLUMN ACCORDION with amber indicator
   ============================================================ */
.ap-faq-list { max-width:680px; margin:2.5rem auto 0; }
.ap-faq-item { border-bottom:1px solid var(--ap-sand2); }
.ap-faq-qbtn { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 0; cursor:pointer; text-align:left; }
.ap-faq-qtxt { font-family:var(--ap-fb); font-size:.88rem; font-weight:700; color:var(--ap-dim); transition:color .16s; }
.ap-faq-item.ap-fq-open .ap-faq-qtxt { color:var(--ap-ink); }
.ap-faq-bar { width:20px; height:20px; flex-shrink:0; display:flex; align-items:center; justify-content:center; border:1.5px solid var(--ap-sand2); border-radius:50%; color:var(--ap-mid); transition:var(--ap-ease); }
.ap-faq-item.ap-fq-open .ap-faq-bar { background:var(--ap-amber); border-color:var(--ap-amber); color:white; }
/* Amber left border when open */
.ap-faq-item.ap-fq-open .ap-faq-qbtn { border-left:3px solid var(--ap-amber); padding-left:.7rem; }
.ap-faq-ans { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.ap-faq-item.ap-fq-open .ap-faq-ans { max-height:180px; }
.ap-faq-atxt { font-size:.84rem; color:var(--ap-dim); padding:.1rem 0 1.1rem; line-height:1.82; }

/* ============================================================
   SERVICE PAGE LAYOUT
   ============================================================ */
.ap-svc-layout { max-width:var(--ap-max); margin:0 auto; padding:5.5rem 3rem; display:grid; grid-template-columns:1fr 240px; gap:5rem; align-items:start; }
.ap-svc-bdy h2 { font-family:var(--ap-fh); font-size:1.5rem; letter-spacing:.04em; color:var(--ap-amber); margin:2.5rem 0 .5rem; }
.ap-svc-bdy p { margin-bottom:.88rem; }
.ap-svc-inc-list { display:flex; flex-direction:column; gap:.38rem; margin-bottom:1.4rem; }
.ap-svc-inc-row { display:flex; align-items:flex-start; gap:.45rem; font-size:.84rem; color:var(--ap-ink); }
.ap-svc-inc-row svg { color:var(--ap-amber); flex-shrink:0; margin-top:.1rem; }
.ap-svc-del { background:var(--ap-ambert); border-left:3px solid var(--ap-amber); padding:.72rem .9rem; border-radius:0 var(--ap-r) var(--ap-r) 0; margin-bottom:1.4rem; }
.ap-svc-del p { margin:0; font-size:.82rem; color:var(--ap-amber2); }
/* Aside dark card */
.ap-aside-crd { background:var(--ap-ink); border-radius:var(--ap-r3); overflow:hidden; }
.ap-aside-img img { width:100%; height:80px; object-fit:cover; opacity:.18; display:block; }
.ap-aside-bd { padding:1.2rem; }
.ap-aside-nm { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,252,247,.18); margin-bottom:.2rem; }
.ap-aside-rt { font-family:var(--ap-fh); font-size:.9rem; letter-spacing:.04em; color:var(--ap-amber); margin-bottom:.8rem; }
/* other-svc links on light warm bg - use muted colors */
.ap-other-h { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.22em; color:var(--ap-mid); margin:1.4rem 0 .5rem; }
.ap-other-lk { display:flex; align-items:center; gap:.38rem; font-size:.8rem; color:var(--ap-dim); padding:.34rem 0; border-bottom:1px solid var(--ap-sand2); transition:color .14s; }
.ap-other-lk:hover { color:var(--ap-amber); }

/* ============================================================
   BUILDER
   ============================================================ */
.ap-build-wrap { max-width:var(--ap-max); margin:0 auto; padding:4rem 3rem 8rem; display:grid; grid-template-columns:1fr 265px; gap:4rem; align-items:start; }
.ap-bld-sec { margin-bottom:2.2rem; }
.ap-bld-lbl { display:block; font-family:var(--ap-fb); font-size:.48rem; font-weight:800; text-transform:uppercase; letter-spacing:.24em; color:var(--ap-amber); margin-bottom:.9rem; }
.ap-pick { background:var(--ap-white); border:1.5px solid var(--ap-sand2); border-radius:var(--ap-r2); padding:.78rem 1rem; display:flex; align-items:center; gap:.65rem; cursor:pointer; user-select:none; transition:var(--ap-ease); margin-bottom:.4rem; }
.ap-pick:hover { border-color:var(--ap-amber); }
.ap-pick.ap-picked { border-color:var(--ap-amber); background:var(--ap-ambert); }
.ap-pick-box { width:16px; height:16px; border:1.5px solid var(--ap-sand2); border-radius:var(--ap-r); flex-shrink:0; transition:var(--ap-ease); }
.ap-pick.ap-picked .ap-pick-box { background:var(--ap-amber); border-color:var(--ap-amber); }
.ap-pick-nm { font-size:.84rem; color:var(--ap-dim); flex:1; }
.ap-pick.ap-picked .ap-pick-nm { color:var(--ap-ink); font-weight:700; }
.ap-pick-pr { font-size:.7rem; font-weight:700; color:var(--ap-amber); white-space:nowrap; }
.ap-adn-wrap { display:flex; flex-wrap:wrap; gap:.4rem; }
.ap-adn-chip { background:var(--ap-white); border:1.5px solid var(--ap-sand2); border-radius:100px; padding:.44rem .88rem; cursor:pointer; user-select:none; transition:var(--ap-ease); }
.ap-adn-chip:hover { border-color:var(--ap-amber); }
.ap-adn-chip.ap-chip-on { border-color:var(--ap-amber); background:var(--ap-ambert); }
.ap-chip-nm { font-size:.8rem; font-weight:600; color:var(--ap-dim); }
.ap-adn-chip.ap-chip-on .ap-chip-nm { color:var(--ap-ink); }
.ap-chip-pr { font-size:.58rem; color:var(--ap-mid); }
.ap-adn-chip.ap-chip-on .ap-chip-pr { color:var(--ap-amber); }
.ap-hrs-box { background:var(--ap-white); border:1.5px solid var(--ap-sand2); border-radius:var(--ap-r2); padding:.9rem 1rem; }
.ap-hrs-hd { display:flex; justify-content:space-between; align-items:center; margin-bottom:.5rem; }
.ap-hrs-lbl { font-size:.82rem; color:var(--ap-dim); }
.ap-hrs-val { font-family:var(--ap-fh); font-size:2rem; color:var(--ap-amber); line-height:1; letter-spacing:.04em; }
.ap-hrs-slider { -webkit-appearance:none; width:100%; height:3px; background:var(--ap-sand2); border-radius:2px; cursor:pointer; }
.ap-hrs-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--ap-amber); cursor:pointer; }
.ap-hrs-note { font-size:.64rem; color:var(--ap-mid); margin-top:.4rem; }
.ap-receipt { background:var(--ap-ink); border-radius:var(--ap-r3); overflow:hidden; position:sticky; top:2rem; }
.ap-receipt-top { background:rgba(255,255,255,.04); padding:.82rem 1.1rem; border-bottom:1px solid rgba(255,255,255,.06); }
.ap-receipt-lbl { font-family:var(--ap-fh); font-size:.8rem; letter-spacing:.1em; color:rgba(255,252,247,.2); }
.ap-receipt-lines { padding:.8rem 1.1rem; min-height:56px; }
.ap-receipt-empty { font-size:.74rem; color:rgba(255,252,247,.18); font-style:italic; }
.ap-receipt-ln { display:flex; justify-content:space-between; gap:.5rem; font-size:.74rem; margin-bottom:.35rem; }
.ap-receipt-lnm { color:rgba(255,252,247,.3); }
.ap-receipt-lpr { font-weight:700; color:rgba(255,252,247,.65); }
.ap-receipt-foot { border-top:1px solid rgba(255,255,255,.06); padding:.82rem 1.1rem; }
.ap-receipt-tot { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:.82rem; }
.ap-receipt-totl { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,252,247,.18); }
.ap-receipt-totv { font-family:var(--ap-fh); font-size:3rem; color:var(--ap-amber); line-height:1; letter-spacing:.04em; }
.ap-receipt-go { display:block; width:100%; background:var(--ap-amber); color:white; font-family:var(--ap-fb); font-size:.88rem; font-weight:800; padding:.76rem; border-radius:var(--ap-r2); border:none; cursor:pointer; transition:background .14s; }
.ap-receipt-go:hover:not(:disabled) { background:var(--ap-amber2); }
.ap-receipt-go:disabled { opacity:.24; cursor:not-allowed; }

/* ============================================================
   CHECKOUT
   ============================================================ */
.ap-co-wrap { max-width:860px; margin:0 auto; padding:5rem 3rem; display:grid; grid-template-columns:1fr 230px; gap:4rem; align-items:start; }
.ap-fg { margin-bottom:.6rem; }
.ap-fl { display:block; font-size:.46rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--ap-mid); margin-bottom:.28rem; }
.ap-fi { width:100%; background:var(--ap-white); border:1.5px solid var(--ap-sand2); border-radius:var(--ap-r2); padding:.64rem .9rem; color:var(--ap-ink); font-size:.9rem; transition:border-color .15s; }
.ap-fi:focus { outline:none; border-color:var(--ap-amber); box-shadow:0 0 0 3px var(--ap-ambert2); }
.ap-fi::placeholder { color:var(--ap-sand2); }
.ap-agree { display:flex; align-items:flex-start; gap:.5rem; font-size:.78rem; color:var(--ap-dim); margin:.88rem 0; line-height:1.6; }
.ap-agree input { margin-top:.12rem; accent-color:var(--ap-amber); }
.ap-agree a { color:var(--ap-amber); }
.ap-co-sum { background:var(--ap-ink); border-radius:var(--ap-r3); overflow:hidden; position:sticky; top:2rem; }
.ap-co-sum-hd { background:rgba(255,255,255,.04); padding:.7rem 1rem; border-bottom:1px solid rgba(255,255,255,.07); }
.ap-co-sum-hl { font-family:var(--ap-fh); font-size:.8rem; letter-spacing:.08em; color:rgba(255,252,247,.2); }
.ap-co-sum-bd { padding:.84rem 1rem; }
.ap-co-ln { display:flex; justify-content:space-between; gap:1rem; font-size:.74rem; margin-bottom:.35rem; }
.ap-co-lnm { color:rgba(255,252,247,.3); }
.ap-co-lpr { font-weight:700; color:rgba(255,252,247,.65); }
.ap-co-div { border:none; border-top:1px solid rgba(255,255,255,.07); margin:.5rem 0; }
.ap-co-tot { display:flex; justify-content:space-between; align-items:flex-end; }
.ap-co-totl { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,252,247,.18); }
.ap-co-totv { font-family:var(--ap-fh); font-size:2.5rem; color:var(--ap-amber); line-height:1; }

/* ============================================================
   PAGE CAP (inner page header)
   ============================================================ */
.ap-pagecap { background:var(--ap-warm); border-bottom:1px solid var(--ap-sand2); padding:5.5rem 3rem 5rem; text-align:center; position:relative; overflow:hidden; }
.ap-pagecap::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:linear-gradient(to right,transparent,var(--ap-amber),transparent); }
.ap-pagecap-label { font-family:var(--ap-fb); font-size:.48rem; font-weight:800; text-transform:uppercase; letter-spacing:.32em; color:var(--ap-amber); background:var(--ap-ambert); border:1px solid var(--ap-ambert2); padding:.2rem .82rem; border-radius:100px; display:inline-block; margin-bottom:.8rem; }
.ap-pagecap h1 { color:var(--ap-ink); max-width:18ch; margin:0 auto; font-size:clamp(3rem,5vw,6.5rem); }
.ap-pagecap-sub { color:var(--ap-dim); max-width:48ch; margin:.6rem auto 0; font-size:.9rem; }

/* ============================================================
   LEGAL PAGES
   ============================================================ */
.ap-legal { max-width:800px; margin:0 auto; padding:5.5rem 3rem 8rem; }
.ap-legal h2 { font-family:var(--ap-fh); font-size:2rem; letter-spacing:.04em; color:var(--ap-amber); margin:2.8rem 0 .5rem; }
.ap-legal h3 { font-family:var(--ap-fb); font-size:.92rem; font-weight:800; color:var(--ap-ink); margin:1.4rem 0 .3rem; }
.ap-legal p { margin-bottom:.88rem; font-size:.88rem; }
.ap-legal ul { padding-left:1.2rem; margin:.4rem 0 .88rem; }
.ap-legal li { font-size:.88rem; list-style:disc; color:var(--ap-dim); line-height:1.72; margin-bottom:.26rem; }
.ap-legal a { color:var(--ap-amber); }
.ap-legal table { width:100%; border-collapse:collapse; font-size:.82rem; margin:.88rem 0 1.2rem; }
.ap-legal th { background:var(--ap-sand); color:var(--ap-ink); padding:.5rem .9rem; text-align:left; font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; border:1px solid var(--ap-sand2); }
.ap-legal td { padding:.5rem .9rem; border:1px solid var(--ap-sand2); color:var(--ap-dim); }
.ap-legal address { background:var(--ap-ambert); border-left:3px solid var(--ap-amber); padding:.88rem 1.1rem; font-size:.86rem; color:var(--ap-amber2); line-height:1.86; margin:.88rem 0; border-radius:0 var(--ap-r) var(--ap-r) 0; }
.ap-legal-eff { display:inline-block; font-size:.68rem; color:var(--ap-mid); background:var(--ap-sand); border:1px solid var(--ap-sand2); padding:.24rem .7rem; border-radius:100px; margin-bottom:1.5rem; }
.ap-result { min-height:74vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:6rem 3rem; }

/* ============================================================
   BUTTONS
   ============================================================ */
.ap-btn-amber { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--ap-fb); font-size:.9rem; font-weight:800; color:white; background:var(--ap-amber); padding:.72rem 2rem; border-radius:var(--ap-r2); transition:background .14s; border:none; cursor:pointer; white-space:nowrap; }
.ap-btn-amber:hover { background:var(--ap-amber2); }
.ap-btn-dark { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--ap-fb); font-size:.9rem; font-weight:800; color:white; background:var(--ap-ink); padding:.72rem 2rem; border-radius:var(--ap-r2); transition:background .14s; border:none; cursor:pointer; white-space:nowrap; }
.ap-btn-dark:hover { background:var(--ap-dark); }
.ap-btn-outline { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--ap-fb); font-size:.9rem; font-weight:800; color:var(--ap-ink); background:transparent; padding:.7rem 1.9rem; border-radius:var(--ap-r2); border:1.5px solid var(--ap-sand2); transition:var(--ap-ease); white-space:nowrap; }
.ap-btn-outline:hover { border-color:var(--ap-amber); color:var(--ap-amber); }
/* Ghost white for dark backgrounds */
.ap-btn-gw { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--ap-fb); font-size:.9rem; font-weight:800; color:rgba(255,252,247,.55); background:transparent; padding:.7rem 1.9rem; border-radius:var(--ap-r2); border:1.5px solid rgba(255,252,247,.14); transition:var(--ap-ease); white-space:nowrap; }
.ap-btn-gw:hover { border-color:rgba(255,252,247,.5); color:var(--ap-white); }
/* Amber for dark aside card */
.ap-btn-amber-sm { display:inline-flex; align-items:center; gap:.35rem; font-family:var(--ap-fb); font-size:.82rem; font-weight:800; color:white; background:var(--ap-amber); padding:.56rem 1rem; border-radius:var(--ap-r2); transition:background .14s; border:none; cursor:pointer; white-space:nowrap; }
.ap-btn-amber-sm:hover { background:var(--ap-amber2); }

/* ============================================================
   CTA BAND
   ============================================================ */
.ap-cta-band { background:var(--ap-ink); }
.ap-cta-in { max-width:var(--ap-max); margin:0 auto; padding:9rem 3rem; text-align:center; }
.ap-cta-in h2 { color:var(--ap-white); margin-bottom:.5rem; }
.ap-cta-in p { max-width:40ch; margin:0 auto 2rem; font-size:.94rem; color:rgba(255,252,247,.3); }
.ap-cta-row { display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   COOKIE + CHAT
   ============================================================ */
.ap-ck-bar { position:fixed; bottom:0; left:var(--ap-sb); right:0; background:var(--ap-ink); border-top:2px solid var(--ap-amber); z-index:9999; padding:.9rem 2rem; display:none; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.ap-ck-bar p { font-size:.78rem; color:rgba(255,252,247,.35); margin:0; }
.ap-ck-bar a { color:var(--ap-amber); }
.ap-ck-btns { display:flex; gap:.4rem; flex-shrink:0; }
.ap-ck-yes { background:var(--ap-amber); color:white; font-size:.76rem; font-weight:700; padding:.38rem .92rem; border:none; border-radius:100px; cursor:pointer; }
.ap-ck-no  { background:transparent; color:rgba(255,252,247,.25); font-size:.76rem; padding:.38rem .92rem; border:1px solid rgba(255,252,247,.12); border-radius:100px; cursor:pointer; }
.ap-chat-fab { position:fixed; bottom:4.5rem; right:1.5rem; z-index:9990; width:50px; height:50px; background:var(--ap-amber); border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(217,119,6,.4); cursor:pointer; border:none; transition:var(--ap-ease); }
.ap-chat-fab:hover { background:var(--ap-amber2); transform:scale(1.06); }
.ap-chatpop { position:fixed; bottom:7.5rem; right:1.5rem; z-index:9989; width:268px; background:var(--ap-white); border:1px solid var(--ap-sand2); border-radius:var(--ap-r3); box-shadow:var(--ap-sh2); opacity:0; pointer-events:none; transform:translateY(8px) scale(.97); transition:opacity .2s,transform .22s; overflow:hidden; }
.ap-chatpop.ap-cp-on { opacity:1; pointer-events:auto; transform:none; }
.ap-chatpop-hd { background:var(--ap-amber); padding:.9rem 1rem; display:flex; align-items:center; justify-content:space-between; }
.ap-chatpop-nm { font-family:var(--ap-fh); font-size:.9rem; letter-spacing:.04em; color:white; }
.ap-chatpop-sub { font-size:.54rem; color:rgba(255,255,255,.55); }
.ap-chatpop-x { color:rgba(255,255,255,.6); }
.ap-chatpop-bd { padding:.88rem; }
.ap-chat-done { display:none; text-align:center; padding:.7rem; font-size:.82rem; color:var(--ap-amber); font-weight:700; }
.ap-chat-inp { width:100%; background:var(--ap-warm); border:1px solid var(--ap-sand2); border-radius:var(--ap-r2); padding:.44rem .76rem; font-size:.8rem; color:var(--ap-ink); margin-bottom:.36rem; resize:none; }
.ap-chat-send { width:100%; background:var(--ap-amber); color:white; font-size:.78rem; font-weight:800; padding:.48rem; border-radius:var(--ap-r2); border:none; cursor:pointer; }

/* ============================================================
   CENTERED MINIMAL FOOTER
   ============================================================ */
.ap-foot { background:var(--ap-ink); border-top:1px solid rgba(255,255,255,.05); }
.ap-foot-top { max-width:var(--ap-max); margin:0 auto; padding:4rem 3rem 2.5rem; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:3rem; }
.ap-foot-logo { font-family:var(--ap-fh); font-size:1.1rem; letter-spacing:.06em; color:var(--ap-white); }
.ap-foot-logo span { color:var(--ap-amber); }
.ap-foot-tagline { font-size:.74rem; color:rgba(255,252,247,.2); margin-top:.2rem; max-width:24ch; line-height:1.72; margin-bottom:.7rem; }
.ap-foot-soc { display:flex; gap:.4rem; }
.ap-foot-soc a { width:30px; height:30px; border:1px solid rgba(255,255,255,.1); border-radius:var(--ap-r2); display:flex; align-items:center; justify-content:center; color:rgba(255,252,247,.2); transition:var(--ap-ease); }
.ap-foot-soc a:hover { border-color:var(--ap-amber); color:var(--ap-amber); }
.ap-foot-col-h { font-size:.42rem; font-weight:800; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,252,247,.12); margin-bottom:.8rem; }
.ap-foot-links { display:flex; flex-direction:column; gap:.42rem; }
.ap-foot-links a { font-size:.78rem; color:rgba(255,252,247,.22); transition:color .14s; }
.ap-foot-links a:hover { color:var(--ap-amber); }
.ap-foot-ct a { display:flex; align-items:flex-start; gap:.4rem; font-size:.76rem; color:rgba(255,252,247,.22); transition:color .14s; margin-bottom:.5rem; }
.ap-foot-ct a:hover { color:var(--ap-amber); }
.ap-foot-ct svg { color:rgba(255,252,247,.15); flex-shrink:0; margin-top:.04rem; }
.ap-foot-btm { border-top:1px solid rgba(255,255,255,.05); max-width:var(--ap-max); margin:0 auto; padding:1.2rem 3rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.ap-foot-copy { font-size:.58rem; color:rgba(255,252,247,.1); }
.ap-foot-leg { display:flex; gap:1.1rem; flex-wrap:wrap; }
.ap-foot-leg a { font-size:.58rem; color:rgba(255,252,247,.18); transition:color .14s; }
.ap-foot-leg a:hover { color:var(--ap-amber); }

/* ============================================================
   MOBILE HEADER (shown only on mobile)
   ============================================================ */
.ap-mob-top { display:none; position:fixed; top:0; left:0; right:0; height:var(--ap-mob-h); background:var(--ap-ink); z-index:950; border-bottom:1px solid rgba(255,255,255,.08); padding:0 1.4rem; align-items:center; justify-content:space-between; }
.ap-mob-top-logo { font-family:var(--ap-fh); font-size:1rem; letter-spacing:.06em; color:var(--ap-white); }
.ap-mob-top-logo span { color:var(--ap-amber); }
.ap-mob-ham { width:36px; height:36px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border-radius:var(--ap-r2); background:rgba(255,255,255,.06); cursor:pointer; }
.ap-mob-ham span { width:16px; height:1.5px; background:rgba(255,252,247,.6); display:block; border-radius:2px; transition:var(--ap-ease); }
/* Mobile overlay from top */
.ap-mob-ov { position:fixed; inset:0; background:rgba(28,25,23,.4); z-index:960; opacity:0; pointer-events:none; transition:opacity .22s; }
.ap-mob-ov.ap-ov-on { opacity:1; pointer-events:auto; }
.ap-mob-menu { position:fixed; top:0; left:0; right:0; background:var(--ap-ink); z-index:970; transform:translateY(-100%); transition:transform .28s cubic-bezier(.4,0,.2,1); max-height:90vh; overflow-y:auto; padding:1rem 1.4rem 2rem; }
.ap-mob-menu.ap-mob-open { transform:none; }
.ap-mob-close { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.2rem; padding-bottom:.6rem; border-bottom:1px solid rgba(255,255,255,.06); }
.ap-mob-close-logo { font-family:var(--ap-fh); font-size:1rem; letter-spacing:.06em; color:var(--ap-white); }
.ap-mob-close-logo span { color:var(--ap-amber); }
.ap-mob-link { display:flex; align-items:center; justify-content:space-between; padding:.64rem 0; border-bottom:1px solid rgba(255,255,255,.06); font-size:.88rem; font-weight:700; color:rgba(255,252,247,.45); transition:color .14s; }
.ap-mob-link:hover { color:var(--ap-amber); }
.ap-mob-svc-h { font-size:.42rem; font-weight:800; text-transform:uppercase; letter-spacing:.28em; color:rgba(255,252,247,.14); margin:1rem 0 .4rem; }
.ap-mob-svc-lk { display:flex; justify-content:space-between; align-items:center; padding:.42rem 0; font-size:.82rem; color:rgba(255,252,247,.28); border-bottom:1px solid rgba(255,255,255,.04); transition:color .14s; }
.ap-mob-svc-lk:hover { color:var(--ap-amber); }
.ap-mob-cta { margin-top:1.4rem; }

/* ============================================================
   ANIMATIONS
   ============================================================ */
.ap-rise { opacity:0; transform:translateY(18px); transition:opacity .52s ease,transform .52s ease; }
.ap-rise.ap-vis { opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px) {
  .ap-sidebar { display:none; }
  .ap-main { margin-left:0; padding-top:var(--ap-mob-h); }
  .ap-mob-top { display:flex; }
  .ap-hero { grid-template-columns:1fr; min-height:auto; }
  .ap-hero-right { height:280px; }
  .ap-hero-left { padding:3rem 1.4rem 2.5rem; min-height:50vh; }
  .ap-svc-grid { grid-template-columns:1fr 1fr; }
  .ap-testi-grid { grid-template-columns:1fr; }
  .ap-price-stack { grid-template-columns:1fr; }
  .ap-build-wrap,.ap-co-wrap,.ap-svc-layout { grid-template-columns:1fr; gap:2.5rem; }
  .ap-timeline::before { left:1.5rem; transform:none; }
  .ap-tl-item { grid-template-columns:1fr; }
  .ap-tl-item:nth-child(even) .ap-tl-box { grid-column:1; }
  .ap-tl-item:nth-child(even) .ap-tl-num { grid-column:1; grid-row:auto; text-align:left; padding-left:.5rem; padding-right:0; }
  .ap-tl-item:nth-child(odd) .ap-tl-num { grid-column:1; padding-left:.5rem; }
  .ap-tl-item::before { left:1.5rem; transform:translateX(-50%); }
  .ap-foot-top { grid-template-columns:1fr 1fr; gap:2rem; }
  .ap-ck-bar { left:0; }
  .ap-work-track { padding:0 1.4rem 2rem; }
  .ap-shell,.ap-build-wrap,.ap-co-wrap { padding-left:1.4rem; padding-right:1.4rem; }
  .ap-svc-layout { padding:4rem 1.4rem; }
}
@media (max-width:640px) {
  .ap-svc-grid { grid-template-columns:1fr; }
  .ap-foot-top { grid-template-columns:1fr; }
  .ap-hero-left { min-height:60vh; }
  .ap-cta-in { padding:5rem 1.4rem; }
}
