/* =====================================================================
   Advanced Laser Printer — Elementor Widgets: base stylesheet
   These are sensible defaults. Every value here can be overridden per
   widget instance from the Elementor Style tab (background, padding,
   margin, colors, radius, image size, etc.)
===================================================================== */
:root{
  --alp-navy-900:#0a2247;
  --alp-navy-800:#0d2b52;
  --alp-blue-600:#1e6fe0;
  --alp-blue-500:#2f80ed;
  --alp-blue-100:#e8f1fd;
  --alp-blue-050:#f4f8fe;
  --alp-ink-900:#10192b;
  --alp-ink-700:#3c4a5e;
  --alp-ink-500:#667488;
  --alp-white:#ffffff;
  --alp-border:#dde6f2;
  --alp-gold:#d8b45c;
  --alp-font-head:"Poppins","Segoe UI",Arial,sans-serif;
  --alp-font-body:"Inter","Segoe UI",Arial,sans-serif;
  --alp-radius:10px;
  --alp-gap:24px;
}

.alp-section{ font-family: var(--alp-font-body); color: var(--alp-ink-700); line-height:1.6; position:relative; }
.alp-section::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; }
.alp-section > .alp-container{ position:relative; z-index:1; }
.alp-section *{ box-sizing:border-box; }
.alp-section img{ max-width:100%; display:block; }
.alp-section a{ text-decoration:none; }
.alp-section ul{ margin:0; padding:0; list-style:none; }
.alp-section h1,.alp-section h2,.alp-section h3,.alp-section h4{
  font-family:var(--alp-font-head); color:var(--alp-navy-900); margin:0 0 16px; line-height:1.2; font-weight:700;
}
.alp-section p{ margin:0 0 16px; }
.alp-container{ max-width:1180px; margin:0 auto; padding:0 24px; }
.alp-section-head{ max-width:700px; margin-bottom:48px; }
.alp-section-head.alp-center{ margin-left:auto; margin-right:auto; text-align:center; }
.alp-section-head p{ font-size:17px; color:var(--alp-ink-500); }
.alp-eyebrow{ display:inline-block; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--alp-blue-600); margin-bottom:12px; }

.alp-img-placeholder{
  background:linear-gradient(135deg,#1a3a63,#0c2547); color:#7ea3d1; font-size:14px; text-align:center;
  display:flex; align-items:center; justify-content:center; padding:20px; border-radius:var(--alp-radius);
  min-height:220px; border:1px solid rgba(255,255,255,.08);
}

/* ---------- Buttons ---------- */
.alp-btn{ display:inline-flex; align-items:center; gap:8px; padding:15px 30px; border-radius:6px; font-family:var(--alp-font-head);
  font-weight:600; font-size:15px; cursor:pointer; border:2px solid transparent; transition:.2s ease; }
.alp-btn-primary{ background:var(--alp-blue-600); color:var(--alp-white); }
.alp-btn-primary:hover{ background:var(--alp-blue-500); }
.alp-btn-outline{ background:transparent; border-color:rgba(255,255,255,.6); color:var(--alp-white); }
.alp-btn-outline:hover{ background:rgba(255,255,255,.12); }
.alp-btn-outline-navy{ background:transparent; border-color:var(--alp-navy-900); color:var(--alp-navy-900); }
.alp-btn-outline-navy:hover{ background:var(--alp-navy-900); color:var(--alp-white); }
.alp-btn-disabled{ background:transparent; border-color:rgba(255,255,255,.3); color:rgba(255,255,255,.55); cursor:not-allowed; }
.alp-btn-light{ background:var(--alp-white); color:var(--alp-navy-900); }
.alp-btn-light:hover{ background:var(--alp-blue-100); }

/* ---------- 1. Hero ---------- */
.alp-hero{ background:linear-gradient(120deg,var(--alp-navy-900) 45%,var(--alp-navy-800) 100%); color:var(--alp-white); overflow:hidden; }
.alp-hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.alp-hero-eyebrow{ font-size:14px; font-weight:600; letter-spacing:.06em; color:#8fb6ec; margin-bottom:10px; }
.alp-hero h1{ color:var(--alp-white); font-size:42px; margin-bottom:18px; }
.alp-hero h1 .alp-accent{ color:#5aa0f5; }
.alp-hero-sub{ font-size:20px; font-weight:600; color:#e7edf7; margin-bottom:18px; }
.alp-hero-desc{ font-size:16.5px; color:#b9c8de; max-width:560px; margin-bottom:32px; }
.alp-trust-row{ display:flex; gap:28px; margin-bottom:34px; flex-wrap:wrap; }
.alp-trust-item{ display:flex; align-items:center; gap:10px; }
.alp-trust-badge{ width:46px; height:46px; border-radius:50%; background:rgba(90,160,245,.15); border:1px solid rgba(90,160,245,.4);
  display:flex; align-items:center; justify-content:center; font-weight:700; color:#7db2f4; font-size:13px; flex-shrink:0; }
.alp-trust-label{ font-size:12.5px; font-weight:600; letter-spacing:.02em; color:#cddbee; line-height:1.3; }
.alp-hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }
.alp-hero-photo, .alp-hero-photo-img{ border-radius:var(--alp-radius); aspect-ratio:4/3.1; width:100%; height:auto; object-fit:cover; }

/* ---------- 2. Services intro ---------- */
.alp-intro-text{ max-width:780px; margin:0 auto; text-align:center; }
.alp-intro-text p{ font-size:17px; color:var(--alp-ink-700); }

/* ---------- 3. Service cards ---------- */
.alp-card-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--alp-gap); }
.alp-service-card{ background:var(--alp-white); border:1px solid var(--alp-border); border-radius:var(--alp-radius); padding:32px 26px;
  display:flex; flex-direction:column; transition:.2s ease; }
.alp-service-card:hover{ border-color:var(--alp-blue-500); box-shadow:0 12px 28px rgba(20,60,120,.08); }
.alp-service-card .alp-icon{ width:52px; height:52px; border-radius:50%; background:var(--alp-blue-100); display:flex; align-items:center;
  justify-content:center; margin-bottom:20px; color:var(--alp-blue-600); font-size:22px; }
.alp-service-card h3{ font-size:18px; margin-bottom:10px; }
.alp-service-card p{ font-size:14.5px; color:var(--alp-ink-500); margin-bottom:18px; }
.alp-service-card .alp-bullets{ margin-bottom:22px; flex-grow:1; }
.alp-service-card .alp-bullets li{ font-size:14px; color:var(--alp-ink-700); padding-left:20px; position:relative; margin-bottom:8px; }
.alp-service-card .alp-bullets li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%; background:var(--alp-blue-500); }
.alp-service-card .alp-card-link{ font-size:13.5px; font-weight:700; letter-spacing:.03em; color:var(--alp-blue-600); padding-top:14px; border-top:1px solid var(--alp-border); }

/* ---------- 4. Experience ---------- */
.alp-experience-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.alp-experience-photo{ border-radius:var(--alp-radius); aspect-ratio:4/3.4; background:linear-gradient(135deg,var(--alp-blue-100),var(--alp-white));
  border:1px solid var(--alp-border); position:relative; }
.alp-experience-photo-img{ width:100%; height:100%; object-fit:cover; border-radius:var(--alp-radius); }
.alp-experience-badge{ position:absolute; bottom:-18px; right:-18px; background:var(--alp-navy-900); color:var(--alp-white); width:118px; height:118px;
  border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; border:4px solid var(--alp-white); box-shadow:0 10px 24px rgba(10,34,71,.25); }
.alp-experience-badge strong{ font-size:26px; font-family:var(--alp-font-head); color:var(--alp-gold); }
.alp-experience-badge span{ font-size:10px; letter-spacing:.05em; margin-top:2px; text-align:center; padding:0 10px; }
.alp-sub-head{ font-weight:600; color:var(--alp-blue-600); font-size:16px; margin-bottom:14px; }
.alp-experience-trust{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; margin:30px 0 34px; }
.alp-experience-trust .alp-item h4{ font-size:14.5px; margin-bottom:6px; }
.alp-experience-trust .alp-item p{ font-size:13.5px; color:var(--alp-ink-500); margin-bottom:0; }

/* ---------- 5. Who we serve ---------- */
.alp-serve-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--alp-gap); margin-top:40px; }
.alp-serve-item{ background:var(--alp-white); border:1px solid var(--alp-border); border-radius:var(--alp-radius); padding:30px 26px; }
.alp-serve-item .alp-icon{ width:44px; height:44px; border-radius:8px; background:var(--alp-navy-900); color:var(--alp-white); display:flex;
  align-items:center; justify-content:center; margin-bottom:18px; font-size:18px; }
.alp-serve-item h4{ font-size:16px; margin-bottom:8px; }
.alp-serve-item p{ font-size:14px; color:var(--alp-ink-500); margin-bottom:0; }
.alp-serve-footnote{ margin-top:30px; font-size:14px; color:var(--alp-ink-500); font-style:italic; }

/* ---------- 6. Equipment ---------- */
.alp-equipment-wrap{ display:flex; gap:56px; align-items:center; }
.alp-equipment-copy{ flex:1 1 0; min-width:0; }
.alp-equipment-photo{ flex:1 1 0; min-width:0; border-radius:var(--alp-radius); aspect-ratio:4/3.2; background:linear-gradient(135deg,#10233f,#0a2247);
  border:1px solid rgba(255,255,255,.08); }
.alp-equipment-photo-img{ width:100%; height:100%; object-fit:cover; border-radius:var(--alp-radius); }
.alp-equipment-highlight{ background:var(--alp-blue-050); border-left:4px solid var(--alp-blue-600); padding:20px 24px; border-radius:6px; margin:22px 0; }
.alp-equipment-highlight h4{ font-size:15.5px; color:var(--alp-navy-900); margin-bottom:6px; }
.alp-equipment-highlight p{ font-size:14px; color:var(--alp-ink-700); margin-bottom:0; }
.alp-brands-line{ font-size:13px; font-weight:700; letter-spacing:.06em; color:var(--alp-blue-600); margin-bottom:6px; }
.alp-caveat-box{ margin-top:24px; padding:16px 20px; background:#fff8ec; border:1px solid #f0dfb8; border-radius:6px; font-size:13.5px; color:#7a5f26; }

/* ---------- 7. Service area ---------- */
.alp-area-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.alp-ma-map{ background:var(--alp-white); border:1px solid var(--alp-border); border-radius:var(--alp-radius); padding:36px; text-align:center; }
.alp-ma-shape{ width:100%; max-width:360px; margin:0 auto 18px; }
.alp-ma-shape svg{ width:100%; height:auto; }
.alp-ma-caption{ font-size:13px; color:var(--alp-ink-500); }
.alp-highlight-word{ display:inline-block; font-family:var(--alp-font-head); font-weight:700; font-size:22px; color:var(--alp-blue-600); margin:6px 0 18px; }
.alp-expansion-note{ margin-top:20px; padding:14px 18px; background:var(--alp-blue-050); border-radius:6px; font-size:13.5px; color:var(--alp-ink-500); }

/* ---------- 8. Toner & supplies ---------- */
.alp-toner-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--alp-gap); margin:40px 0 48px; }
.alp-toner-item{ text-align:center; padding:32px 20px; border:1px solid var(--alp-border); border-radius:var(--alp-radius); background:var(--alp-white); }
.alp-toner-item .alp-icon{ width:50px; height:50px; border-radius:50%; background:var(--alp-blue-100); color:var(--alp-blue-600); display:flex;
  align-items:center; justify-content:center; margin:0 auto 16px; font-size:20px; }
.alp-toner-item h4{ font-size:16px; margin-bottom:8px; }
.alp-toner-item p{ font-size:13.5px; color:var(--alp-ink-500); margin-bottom:0; }
.alp-order-box{ background:var(--alp-navy-900); border-radius:var(--alp-radius); padding:40px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.alp-order-box h3{ color:var(--alp-white); margin-bottom:10px; }
.alp-order-box p{ color:#b9c8de; margin-bottom:0; max-width:460px; font-size:14.5px; }
.alp-order-box .alp-email-line{ font-size:14px; color:#8fb6ec; margin-top:8px; display:block; }

/* ---------- 9. Why choose us ---------- */
.alp-approach-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--alp-gap); margin-top:44px; }
.alp-approach-item{ text-align:left; padding-top:20px; border-top:3px solid var(--alp-blue-500); }
.alp-approach-item h4{ font-size:17px; margin-bottom:8px; }
.alp-approach-item p{ font-size:14px; color:var(--alp-ink-500); margin-bottom:0; }

/* ---------- 10. How we help / steps ---------- */
.alp-steps-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--alp-gap); margin-top:44px; position:relative; }
.alp-step-item{ background:var(--alp-white); border:1px solid var(--alp-border); border-radius:var(--alp-radius); padding:30px 26px; position:relative; }
.alp-step-num{ font-family:var(--alp-font-head); font-weight:700; font-size:13px; color:var(--alp-blue-600); letter-spacing:.05em; margin-bottom:12px; }
.alp-step-item h4{ font-size:17px; margin-bottom:8px; }
.alp-step-item p{ font-size:14px; color:var(--alp-ink-500); margin-bottom:0; }

/* ---------- 11. CTA band ---------- */
.alp-cta-band-section{ background:linear-gradient(120deg,var(--alp-navy-900),#0e2c58); color:var(--alp-white); text-align:center; }
.alp-cta-band-section h2{ color:var(--alp-white); }
.alp-cta-band-section p{ max-width:640px; margin:0 auto 30px; color:#b9c8de; font-size:16.5px; }
.alp-secondary-text{ margin-top:18px; font-size:13.5px; color:#7f97b7; }

/* ---------- 12. Final CTA ---------- */
.alp-final-cta-section{ background:var(--alp-blue-050); text-align:center; }
.alp-final-cta-section h2{ font-size:32px; max-width:700px; margin:0 auto 16px; }
.alp-final-cta-section p{ max-width:560px; margin:0 auto 30px; color:var(--alp-ink-700); }
.alp-contact-line{ margin-top:22px; font-size:14px; color:var(--alp-ink-500); }
.alp-contact-line a{ color:var(--alp-blue-600); font-weight:600; }

/* ---------- 13. Footer ---------- */
.alp-footer{ background:#081a35; color:#92a8c8; padding:64px 0 28px; font-size:14px; position:relative; }
.alp-footer::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; }
.alp-footer > .alp-container{ position:relative; z-index:1; }
.alp-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08); }
.alp-footer-logo{ width:40px; height:40px; margin-bottom:10px; }
.alp-footer-brand-name{ font-family:var(--alp-font-head); font-weight:700; color:var(--alp-white); font-size:15px; letter-spacing:.02em; }
.alp-footer-brand p{ margin-top:14px; max-width:280px; color:#7f97b7; font-size:13.5px; }
.alp-footer h4{ color:var(--alp-white); font-size:14px; letter-spacing:.03em; margin-bottom:18px; }
.alp-footer ul li{ margin-bottom:10px; }
.alp-footer ul li a{ color:#9db8dd; }
.alp-footer ul li a:hover{ color:var(--alp-white); }
.alp-footer-bottom{ padding-top:24px; text-align:center; font-size:12.5px; color:#5f7796; }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .alp-hero-grid,.alp-experience-grid,.alp-equipment-wrap,.alp-area-grid{ grid-template-columns:1fr !important; flex-direction:column !important; }
  .alp-hero-photo,.alp-experience-photo,.alp-equipment-photo{ order:-1; }
  .alp-card-grid{ grid-template-columns:repeat(2,1fr); }
  .alp-serve-grid,.alp-toner-grid,.alp-approach-grid,.alp-steps-grid{ grid-template-columns:1fr 1fr; }
  .alp-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .alp-hero h1{ font-size:30px; }
  .alp-card-grid,.alp-serve-grid,.alp-toner-grid,.alp-approach-grid,.alp-steps-grid{ grid-template-columns:1fr; }
  .alp-experience-trust{ grid-template-columns:1fr; }
  .alp-footer-grid{ grid-template-columns:1fr; }
  .alp-order-box{ flex-direction:column; align-items:flex-start; }
  .alp-trust-row{ gap:18px; }
  .alp-compare-grid{ grid-template-columns:1fr; }
}

/* =====================================================================
   Generic section types (Printer Service / Toner & Supplies /
   Service Area / About Us pages)
===================================================================== */
.alp-hero-caption{ font-size:13.5px; color:#8fb6ec; margin-top:12px; }

.alp-intro-highlight{ text-align:center; margin-top:8px; }
.alp-intro-highlight .alp-highlight-word{ margin-bottom:4px; }
.alp-intro-highlight .alp-highlight-caption{ font-size:13px; letter-spacing:.05em; color:var(--alp-ink-500); }

.alp-info-box{ background:var(--alp-navy-900); border-radius:var(--alp-radius); padding:40px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; margin-top:36px; }
.alp-info-box h3{ color:var(--alp-white); margin-bottom:10px; }
.alp-info-box p{ color:#b9c8de; margin-bottom:0; max-width:460px; font-size:14.5px; }
.alp-info-box .alp-email-line{ font-size:14px; color:#8fb6ec; margin-top:8px; display:block; }

.alp-stat-inline{ display:flex; align-items:center; gap:22px; margin:26px 0; }
.alp-stat-number{ font-size:48px; font-weight:800; font-family:var(--alp-font-head); color:var(--alp-navy-900); line-height:1; }
.alp-stat-label{ font-size:13px; font-weight:700; letter-spacing:.05em; color:var(--alp-blue-600); max-width:160px; }

.alp-compare-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:36px; }
.alp-compare-col{ padding:28px; border-radius:var(--alp-radius); border:1px solid var(--alp-border); background:var(--alp-white); }
.alp-compare-col.is-future{ background:var(--alp-blue-050); }
.alp-compare-label{ font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--alp-blue-600); margin-bottom:8px; display:block; }
.alp-compare-col h4{ margin-bottom:8px; }
.alp-compare-col p{ margin-bottom:0; font-size:14px; color:var(--alp-ink-500); }

.alp-steps-actions{ text-align:center; margin-top:36px; }
