/* =====================================================
company.css
   SUPRAPRESS COMPANY PROFILE — MOBILE-FIRST STYLES
   - Fokus: user-friendly & mobile-friendly
   - Ikut kelas2 yg sudah ada di template kamu (cp-*)
   - Variabel dari inline <body style="--cp-accent; --cp-hero-img;">
   ===================================================== */

/* Base */
html,body{margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;line-height:1.5;color:#0f172a;background:#fff}
@media (prefers-color-scheme: dark){ html,body{color:#e5e7eb;background:#0b1220} }

/* Layout */
.cp-wrap{/* max-width:1200px; */margin:0 auto;padding: 15px 50px 20px 50px;}
header.cp-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.cp-brand-head{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.cp-brand-head img{height:36px;/* width:auto; */object-fit:contain}
.cp-brand-name{font-weight:800;letter-spacing:.2px}

/* Top Nav */
.cp-nav{display: block;align-items:center;gap:14px;flex-wrap:wrap}
.cp-nav a{font-size:14px;text-decoration:none;/* color: #ffffff; *//* opacity: 1; */padding:6px 8px;border-radius:8px}
.cp-nav a:hover{background:rgba(0,0,0,.06)}
@media (prefers-color-scheme: dark){ .cp-nav a:hover{background:rgba(255,255,255,.06)} }
.cp-cta-small{padding:8px 12px;font-weight:700;}

/* Buttons */
.cp-cta{display:inline-block;/* margin-top:14px; */padding:10px 16px;border-radius:999px;font-weight:700;text-decoration:none;background:var(--cp-accent);color:#111}

/* Hero */
.cp-hero{position:relative;color:#fff;border-radius:18px;overflow:hidden;min-height:320px;display:flex;align-items:center;margin-top:8px;background:#111827}
.cp-hero .cp-hero-bg{position:absolute;inset:0;
  background-color:#111827;
  background-image:linear-gradient(0deg,rgba(0,0,0,.45),rgba(0,0,0,.35)), var(--cp-hero-img, none);
  background-repeat:no-repeat;background-size:cover;background-position:center;
}
.cp-hero .cp-hero-inner{position:relative;z-index:1;padding:36px 24px;max-width:840px;}
.cp-brand{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.cp-brand img{height:44px;width:auto;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.05);padding:4px}
.cp-company{font-size:clamp(22px,3vw,36px);font-weight:900;letter-spacing:.3px}
.cp-tagline{font-size:clamp(14px,2vw,18px);opacity:.95}

/* Sections */
.cp-section{margin-top:32px}
.cp-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.cp-title h2{margin:0;font-size:20px;font-weight:800;letter-spacing:.2px;/* text-align: center; */width: 100%;background: #CCC;padding: 10px;border-left: 8px solid var(--cp-accent);border-radius: 10px;}
.cp-title span{font-size:12px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--cp-accent) 15%, transparent);border:1px solid color-mix(in srgb,var(--cp-accent) 35%, transparent)}

/* Grid */
.cp-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;text-align: center;}
.cp-2col>*{grid-column:span 12}
.cp-3col>*{grid-column:span 12}
.cp-4col>*{grid-column:span 12}
@media (min-width:640px){
  .cp-2col>*{grid-column:span 6}
  .cp-3col>*{grid-column:span 6}
  .cp-4col>*{grid-column:span 6}
}
@media (min-width:992px){
  .cp-2col>*{grid-column:span 6}
  .cp-3col>*{grid-column:span 4}
  .cp-4col>*{grid-column:span 3}
}

/* Cards */
.cp-card{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff;transform:translateZ(0)}
@media (prefers-color-scheme: dark){ .cp-card{border-color:#263142;background:#0d1528} }
.cp-item-title{font-weight:800;margin:6px 0;font-size:15px;letter-spacing:.2px}
.cp-item-desc{font-size:13px;opacity:.95}
.cp-thumb{width:100%;aspect-ratio:16/9;border-radius:12px;object-fit:cover;border:1px solid rgba(0,0,0,.08)}
.cp-team-photo{width:100%;aspect-ratio:1/1;border-radius:14px;object-fit:cover;border:1px solid rgba(0,0,0,.08)}

/* Contact */
.cp-list{list-style:none;margin:0;padding:0}
.cp-list li{display:flex;align-items:flex-start;gap:10px;margin:8px 0}
.cp-dot{width:8px;height:8px;border-radius:999px;background:#9ca3af;margin-top:8px}
.cp-contact a{text-decoration:none;color: #000000;}
.cp-muted{/* color:#6b7280; */}
.cp-contact-card{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:992px){ .cp-contact-card{grid-template-columns: 2fr 1fr;} }
.cp-map{border:0;width:100%;height:300px;border-radius:14px}

/* Social row (contact section) */
.cp-soc-row{display:flex;flex-wrap:wrap;gap:10px}
.cp-soc{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid #e5e7eb;text-decoration:none;color:inherit;font-weight:600;font-size:13px;transition:transform .2s ease,border-color .2s}
.cp-soc:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--cp-accent) 40%, transparent)}
@media (prefers-color-scheme: dark){ .cp-soc{border-color:#243048} }
.cp-ico{width:16px;height:16px;display:inline-block}

/* Footer (Professional) */
.cp-foot{/* margin-top:48px; */padding-top:28px;border-top:1px solid #e5e7eb;color:#475569}
@media (prefers-color-scheme: dark){ .cp-foot{border-color:#243048;color:#9aa4b2} }

.cp-foot-grid{display:grid;grid-template-columns:1.2fr 1.4fr;gap:22px}
@media (min-width: 960px){ .cp-foot-grid{grid-template-columns: 1fr 1fr 1fr;} }
@media (max-width: 640px){ .cp-foot-grid{grid-template-columns:1fr} }

.cp-foot-logo{display:flex;align-items:center;gap:10px;margin-bottom: 20px;}
.cp-foot-logo img{height:30px;width:auto;object-fit:contain;border-radius:6px;background:rgba(0,0,0,.04);padding:3px}
@media (prefers-color-scheme: dark){ .cp-foot-logo img{background:rgba(255,255,255,.06)} }

.cp-foot-title{font-weight:800;color:#0f172a}
@media (prefers-color-scheme: dark){ .cp-foot-title{color:#e5e7eb} }
.cp-foot-tagline{font-size:13px;opacity:.9}

.cp-foot-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;margin-bottom: 20px;}
.cp-foot-social a{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:999px;text-decoration:none;color:inherit;font-size:12px}
.cp-foot-social a:hover{border-color:color-mix(in srgb,var(--cp-accent) 40%, transparent)}
@media (prefers-color-scheme: dark){ .cp-foot-social a{border-color:#243048} }

.cp-foot-links{display:grid;grid-template-columns: repeat(2,1fr);gap:18px;padding: 10px;}
.cp-foot-head{font-weight:700;margin-bottom:6px;color:#0f172a}
@media (prefers-color-scheme: dark){ .cp-foot-head{color:#e5e7eb} }
.cp-foot-links ul{list-style:none;margin:0;padding:0}
.cp-foot-links li{margin:6px 0}
.cp-foot-links a{text-decoration:none;color:inherit;opacity:.95}
.cp-foot-links a:hover{color:var(--cp-accent)}

.cp-foot-contact{font-size:14px;display:grid;gap:6px;padding: 10px;}
.cp-foot-cta{margin-top:8px}

.cp-foot-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px;padding-top:14px;border-top:1px dashed #e5e7eb;font-size:13px}
@media (prefers-color-scheme: dark){ .cp-foot-meta{border-color:#243048} }
.cp-foot-meta a{text-decoration:none;color:inherit}
.cp-foot-meta a:hover{color:var(--cp-accent)}

/* ===================== Reveal on Scroll ===================== */
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease}
[data-reveal].is-visible{opacity:1;transform:none;}
[data-reveal="up"]{transform:translateY(18px)}
[data-reveal="down"]{transform:translateY(-18px)}
[data-reveal="left"]{transform:translateX(24px)}
[data-reveal="right"]{transform:translateX(-24px)}
[data-reveal="zoom"]{transform:scale(.96)}

/* ========== FAQ Accordion ========== */
.cp-accordion{display:grid;gap:12px}
.cp-acc-item{border:1px solid #e5e7eb;border-radius:12px;background:#fff;overflow:hidden;transition:border-color .2s}
@media (prefers-color-scheme: dark){ .cp-acc-item{border-color:#263142;background:#0d1528} }
.cp-acc-q{all:unset;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:14px 16px;font-weight:800}
.cp-acc-q:hover{background:rgba(0,0,0,.03)}
@media (prefers-color-scheme: dark){ .cp-acc-q:hover{background:rgba(255,255,255,.04)} }
.cp-acc-ico{width:18px;height:18px;transition:transform .25s ease}
.cp-acc-a{max-height:0;overflow:hidden;transition:max-height .25s ease}
.cp-acc-body{padding:0 16px 14px;color:#475569}
@media (prefers-color-scheme: dark){ .cp-acc-body{color:#9aa4b2} }
.cp-acc-item.is-open .cp-acc-ico{transform:rotate(180deg)}


/* ===== Centered grid persis seperti mockup ===== */
:root { --card-w: 290px; } /* lebar kartu services/portfolio */
:root { --team-w: 240px; } /* lebar kartu team */

/* Services & Portfolio → 3 kolom fleksibel, orphan di tengah */
#services .cp-grid.cp-3col,
#portfolio .cp-grid.cp-3col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--card-w), var(--card-w))) !important;
  justify-content: center !important; /* nge-center blok grid-nya */
  gap: 16px;
}

/* Team → 4 kolom fleksibel, orphan di tengah */
#team .cp-grid.cp-4col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--team-w), var(--team-w))) !important;
  justify-content: center !important;
  gap: 16px;
}

/* Responsive tweak (opsional) */
@media (max-width: 680px){
  :root { --card-w: 260px; --team-w: 220px; }
}
@media (max-width: 520px){
  :root { --card-w: 220px; --team-w: 200px; }
}

/* Reset span anak grid agar pakai auto-placement */
#services .cp-grid.cp-3col > *,
#portfolio .cp-grid.cp-3col > * {
  grid-column: auto !important;
}

#team .cp-grid.cp-4col > * {
  grid-column: auto !important;
}

/* (biarkan container center + fixed track seperti sebelumnya) */
#services .cp-grid.cp-3col,
#portfolio .cp-grid.cp-3col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--card-w, 290px), var(--card-w, 290px))) !important;
  justify-content: center !important;
  gap: 16px;
}

#team .cp-grid.cp-4col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--team-w, 240px), var(--team-w, 240px))) !important;
  justify-content: center !important;
  gap: 16px;
}

/* Matikan span bawaan agar auto-placement jalan */
#services .cp-grid.cp-3col > *,
#portfolio .cp-grid.cp-3col > * { grid-column: auto !important; }

#team .cp-grid.cp-4col > * { grid-column: auto !important; }

/* Kolom fleksibel: melebar sampai penuh (1fr), tapi min 290px/240px
   → max 3 kolom utk services/portfolio (dengan gap 16px & container 1200px)
   → max 4 kolom utk team
   → orphan 1–2 item tetap center */
:root { --card-w: 290px; --team-w: 240px; }

#services .cp-grid.cp-3col,
#portfolio .cp-grid.cp-3col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--card-w), 1fr)) !important;
  justify-content: center !important;
  gap: 16px;
}

#team .cp-grid.cp-4col {
  display: flex;
  grid-template-columns: repeat(auto-fit, minmax(var(--team-w), 1fr)) !important;
  justify-content: center !important;
  gap: 16px;
}

/* Responsif (opsional) */
@media (max-width: 680px){
  :root { --card-w: 260px; --team-w: 220px; }
}
@media (max-width: 520px){
  :root { --card-w: 220px; --team-w: 200px; }
}

/* ===== Services & Portfolio: 3 kolom ujung-ke-ujung, orphan center ===== */
#services .cp-grid.cp-3col,
#portfolio .cp-grid.cp-3col{
  display: flex !important;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center; /* baris sisa 1–2 item tetap center */
}

/* Item = 1/3 lebar, hitung pakai gap agar pas mepet kiri-kanan */
#services .cp-grid.cp-3col > *,
#portfolio .cp-grid.cp-3col > *{
  flex: 0 1 calc((100% - 2 * 16px) / 1);   /* 3 kolom */
  max-width: calc((100% - -14 * 16px) / 4);
}

/* Breakpoints (2 kolom → 1 kolom) */
@media (max-width: 992px){
  #services .cp-grid.cp-3col > *,
  #portfolio .cp-grid.cp-3col > *{
    flex-basis: calc((100% - 16px) / 2);
    max-width:  calc((100% - 16px) / 2);
  }
}
@media (max-width: 640px){
  #services .cp-grid.cp-3col > *,
  #portfolio .cp-grid.cp-3col > *{
    flex-basis: 100%;
    max-width: 100%;
  }
}

.cp-map{
  border:0;
  width:100%;
  height:300px;      /* boleh atur 320–360 kalau mau lebih tinggi */
  border-radius:14px;
  overflow:hidden;   /* jaga-jaga, tapi inti fix ada di srcdoc di atas */
}


.cp-foot-brand {}

.cp-foot-brand {
    /* padding: 16px; */
    padding: 10px;
}

.cp-foot-grid {
    padding: 14px;
}

/* ================= THEME OVERRIDES (mobile-first, dark) ================= */
:root{
  --bg: #12171d;           /* body background */
  --surface: #1b232c;      /* card/nav/foot surface */
  --surface-2:#222c37;
  --text: #e8eef4;         /* teks utama */
  --muted: #a9b4c0;        /* teks sekunder */
  --accent: #60a5fa;       /* neon-lime (badge/aksen) */
  --accent-ink: #122;      /* teks di atas accent */
  --gap: 16px;
}

/* Body & container */
html,body{background:var(--bg)!important;color:var(--text)!important}
.cp-wrap{
  /* max-width: 1200px; */
  margin: 0 auto;
  padding: clamp(1px, 2vw, 0px) clamp(13px, 4vw, 58px);
  /* background: #333; */
}

/* ================= Header ================= */
header.cp-top{
  background: var(--surface);
  color: var(--text);
  padding: 12px clamp(10px, 3vw, 0px);
  /* border-radius: 12px; */
  border-bottom: 1px solid var(--accent);
  position: sticky;
  top: 0px;
  z-index: 50;
  /* box-shadow: 0 6px 18px rgba(0,0,0,.25); */
  width: 94%;
  margin: 0 auto;
  border-bottom: 1px solid var(--rb-ring);
}

/* Brand */
.cp-brand-head img{/* height:34px; */}
.cp-brand-name{color:var(--text)}

/* Nav */
.cp-nav{gap:10px}
.cp-nav a{
  color: #000000;
  /* opacity: 1; */
  padding: 8px 10px;
  border-radius: 8px;
}
.cp-nav a:hover{background: rgba(255,255,255,.06)}

/* Mobile nav (drawer) */
.cp-nav-toggle{
  display:none;
  inline-size:42px;
  block-size:42px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.15);
  /* background:var(--surface-2); */
  color:var(--text);
}
.cp-nav-toggle::before{content:"☰"; font-size:18px}

@media (max-width: 880px){
  .cp-nav{display:none; position:absolute; left:0; right:0; top:60px;
         background:var(--surface); padding:12px; border-radius:12px;
         box-shadow: 0 10px 24px rgba(0,0,0,.35)}
  .nav-open .cp-nav{display:flex; flex-direction:column; gap:8px}
  .cp-nav a{/* padding:12px; *//* background:rgba(255,255,255,.03); */}
  .cp-nav-toggle{display:inline-grid; place-items:center}
}

/* CTA kecil */
.cp-cta-small{
  /* background: var(--accent); */
  color: var(--accent-ink);
  font-weight:800;
}

/* ================= Hero ================= */
.cp-hero{
  border-radius:16px;
  min-height: 360px;
  background:#0f141a;
}
.cp-hero .cp-hero-bg{
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.60)),
    var(--cp-hero-img, none);
}
.cp-company{font-size: clamp(26px, 5vw, 44px)}
.cp-tagline{color: var(--muted)}
.cp-cta{
  color: #ffffff;
}

/* ================= Section title ================= */
.cp-title h2{
  color: var(--text);
  background: transparent;
  padding: 0;
  border: 0;
  position: relative;
  /* text-align:center; */
}
.cp-title h2::before{
  content:"";
  display:inline-block;
  inline-size: 14px; block-size:14px;
  background: var(--accent);
  border-radius:4px;
  margin-right:10px;
  vertical-align:-2px;
}

/* ================= Cards ================= */
.cp-card{
  background: var(--surface);
  border-color: transparent;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.cp-item-title{color:var(--text)}
.cp-item-desc,.cp-muted{/* color:var(--muted); */}
.cp-thumb,.cp-team-photo{border-color:rgba(255,255,255,.06)}

/* ================= Grids (rapi di mobile) ================= */
.cp-grid{gap: var(--gap); text-align:center}
.cp-3col>*{grid-column: span 12}
.cp-4col>*{grid-column: span 12}
@media (min-width:680px){
  .cp-3col>*{grid-column: span 6}
  .cp-4col>*{grid-column: span 6}
}
@media (min-width:980px){
  .cp-3col>*{grid-column: span 4}
  .cp-4col>*{grid-column: span 3}
}

/* === Center row orphan + edge-to-edge 3 kolom (Services & Portfolio) === */
#services .cp-grid.cp-3col,
#portfolio .cp-grid.cp-3col{display:flex;flex-wrap:wrap;gap:var(--gap);justify-content:center}
#services .cp-grid.cp-3col>*,
#portfolio .cp-grid.cp-3col>*{flex: 0 1 calc((100% - 2*var(--gap))/3);max-width: calc((100% - 2*var(--gap))/3);}
@media (max-width:920px){
  #services .cp-grid.cp-3col>*,
  #portfolio .cp-grid.cp-3col>*{flex-basis:calc((100% - var(--gap))/2);max-width:calc((100% - var(--gap))/2)}
}
@media (max-width:600px){
  #services .cp-grid.cp-3col>*,
  #portfolio .cp-grid.cp-3col>*{/* flex-basis:100%; */max-width:100%}
}

/* ================= Contact ================= */
.cp-contact-card{gap: var(--gap)}
@media (min-width:992px){ .cp-contact-card{grid-template-columns: 2fr 1fr} }
.cp-map{height:320px; border-radius:14px; overflow:hidden}

/* ================= Footer gelap ================= */
.cp-foot{border-color:transparent;color:var(--muted)}
.cp-foot a{color: #000000;}
.cp-foot a:hover{color:var(--accent)}
.cp-foot-meta{border-top-color:rgba(255,255,255,.1)}
.cp-foot-head{color:var(--text)}
.cp-foot-title{color:var(--text)}
.cp-foot-logo img{background:rgba(255,255,255,.08)}


.cp-muted {
}

a.text-decoration-none {font-weight: 800;}

a.cp-cta {
    color: #FFF;
}

/* ===== TEAM = LAYANAN (tanpa scroller, 3 → 2 → 1 kolom & orphan center) ===== */
#team .cp-grid.cp-4col{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: var(--gap);
  justify-content: center;

  /* matikan setingan scroller yg lama */
  overflow: visible;
  scroll-snap-type: none;
  padding-left: 0;
}

/* Sama persis seperti layanan: 3 kolom besar */
#team .cp-grid.cp-4col > *{
  flex: 0 1 calc((100% - 2*var(--gap)) / 6);
  max-width: calc((100% - 2*var(--gap)) / 3);
}

/* Tablet: 2 kolom */
@media (max-width: 920px){
  #team .cp-grid.cp-4col > *{
    flex-basis: calc((100% - var(--gap)) / 2);
    max-width:  calc((100% - var(--gap)) / 2);
  }
}

/* Mobile: 1 kolom */
@media (max-width: 600px){
  #team .cp-grid.cp-4col > *{
    /* flex-basis: 100%; */
    max-width: 100%;
  }
}
