/* Fortis Siber Persada — elegant dark theme overrides */
:root{
  --fsp-bg:#05070d;
  --fsp-bg-2:#0a1120;
  --fsp-accent:#3b82f6;
  --fsp-accent-2:#22d3ee;
  --fsp-text:#eef4ff;
  --fsp-text-dim:#94a7c7;
  --fsp-border:rgba(255,255,255,.09);
  --fsp-card:rgba(255,255,255,.035);
}

/* ---- Global site skin ---- */
body{ background:var(--fsp-bg) !important; }
.ast-page-builder-header,
.site-header,
.ast-primary-header-bar,
.ast-above-header,
.ast-below-header-bar{
  background:rgba(5,7,13,.85) !important;
  border-color:var(--fsp-border) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.main-header-menu .menu-item > .menu-link,
.ast-header-account,
.site-title,.site-title a,
.site-description{ color:var(--fsp-text) !important; }
.main-header-menu .menu-item > .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link{ color:var(--fsp-accent-2) !important; }
.ast-mobile-menu-buttons svg,
.ast-mobile-menu-buttons-minimal svg{ fill:var(--fsp-text) !important; }

footer.site-footer,
.ast-footer-overlay,
#colophon,
.site-below-footer-wrap{
  background:var(--fsp-bg-2) !important;
  border-color:var(--fsp-border) !important;
  color:var(--fsp-text-dim) !important;
}
footer.site-footer a{ color:var(--fsp-text) !important; }
footer.site-footer a:hover{ color:var(--fsp-accent-2) !important; }

body.page-id-295 .entry-header,
body.page-id-296 .entry-header,
body.page-id-297 .entry-header,
body.page-id-298 .entry-header{ display:none; }

/* ---- Layout helpers ---- */
.fsp{ color:var(--fsp-text); }
.fsp *{ box-sizing:border-box; }
.fsp a{ text-decoration:none; }
.fsp-container{ max-width:1140px; margin:0 auto; padding:0 24px; }

/* ---- Hero ---- */
.fsp-hero{
  position:relative;
  overflow:hidden;
  padding:120px 24px 100px;
  text-align:center;
  background:radial-gradient(ellipse at 50% -10%, #0e2140 0%, var(--fsp-bg) 60%);
}
.fsp-hero__bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.fsp-hero__grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--fsp-border) 1px, transparent 1px),
    linear-gradient(90deg, var(--fsp-border) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at 50% 20%, black 10%, transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 20%, black 10%, transparent 70%);
  animation:fsp-grid-drift 26s linear infinite;
}
@keyframes fsp-grid-drift{ from{ background-position:0 0,0 0; } to{ background-position:96px 48px,96px 48px; } }
.fsp-hero__blob{ position:absolute; border-radius:50%; filter:blur(80px); opacity:.55; }
.fsp-hero__blob--1{ width:420px; height:420px; left:-120px; top:-100px; background:var(--fsp-accent); animation:fsp-float-a 16s ease-in-out infinite; }
.fsp-hero__blob--2{ width:360px; height:360px; right:-100px; top:40px; background:var(--fsp-accent-2); animation:fsp-float-b 20s ease-in-out infinite; }
@keyframes fsp-float-a{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(40px,30px); } }
@keyframes fsp-float-b{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-30px,40px); } }

.fsp-hero__inner{ position:relative; z-index:1; max-width:760px; margin:0 auto; }
.fsp-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 16px; border:1px solid var(--fsp-border); border-radius:999px;
  font-size:13px; letter-spacing:.04em; color:var(--fsp-text-dim);
  background:var(--fsp-card); margin-bottom:24px;
}
.fsp-badge__dot{ width:7px; height:7px; border-radius:50%; background:var(--fsp-accent-2); box-shadow:0 0 0 0 rgba(34,211,238,.6); animation:fsp-pulse 2s infinite; }
@keyframes fsp-pulse{ 0%{ box-shadow:0 0 0 0 rgba(34,211,238,.55); } 70%{ box-shadow:0 0 0 10px rgba(34,211,238,0); } 100%{ box-shadow:0 0 0 0 rgba(34,211,238,0); } }

.fsp-hero__title{ font-size:clamp(32px,5vw,54px); line-height:1.15; font-weight:700; letter-spacing:-.02em; margin:0 0 20px; color:var(--fsp-text); }
.fsp-gradient-text{ background:linear-gradient(90deg,var(--fsp-accent),var(--fsp-accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.fsp-hero__desc{ font-size:18px; line-height:1.7; color:var(--fsp-text-dim); margin:0 auto 36px; max-width:600px; }
.fsp-hero__cta{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

.fsp-page-hero{ padding:96px 24px 72px; }
.fsp-page-hero .fsp-hero__title{ font-size:clamp(28px,4vw,42px); }

/* ---- Buttons ---- */
.fsp-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px; border-radius:10px; font-weight:600; font-size:15px;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}
.fsp-btn--primary{
  color:#fff; background:linear-gradient(90deg,var(--fsp-accent),var(--fsp-accent-2));
  box-shadow:0 8px 24px -8px rgba(59,130,246,.6);
}
.fsp-btn--primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -8px rgba(34,211,238,.65); color:#fff; }
.fsp-btn--ghost{ color:var(--fsp-text); border:1px solid var(--fsp-border); background:var(--fsp-card); }
.fsp-btn--ghost:hover{ border-color:var(--fsp-accent-2); color:var(--fsp-accent-2); transform:translateY(-2px); }

/* ---- Sections ---- */
.fsp-section{ padding:80px 24px; }
.fsp-section--alt{ background:var(--fsp-bg-2); }
.fsp-section__eyebrow{ display:block; text-align:center; color:var(--fsp-accent-2); font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:12px; }
.fsp-section__title{ text-align:center; font-size:clamp(24px,3.2vw,36px); font-weight:700; margin:0 auto 16px; max-width:640px; color:var(--fsp-text); }
.fsp-section__desc{ text-align:center; color:var(--fsp-text-dim); max-width:600px; margin:0 auto 48px; font-size:16px; line-height:1.7; }

/* ---- Card grid ---- */
.fsp-grid{ max-width:1140px; margin:0 auto; display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.fsp-card{
  padding:32px 28px; border-radius:16px; background:var(--fsp-card);
  border:1px solid var(--fsp-border); transition:transform .3s ease, border-color .3s ease, background .3s ease;
}
.fsp-card:hover{ transform:translateY(-6px); border-color:rgba(34,211,238,.4); background:rgba(255,255,255,.06); }
.fsp-card__icon{
  width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,rgba(59,130,246,.18),rgba(34,211,238,.18));
  color:var(--fsp-accent-2); margin-bottom:20px;
}
.fsp-card__icon svg{ width:26px; height:26px; }
.fsp-card h3{ font-size:19px; font-weight:600; margin:0 0 10px; color:var(--fsp-text); }
.fsp-card p{ font-size:15px; line-height:1.7; color:var(--fsp-text-dim); margin:0; }

/* ---- Contact info list ---- */
.fsp-contact-grid{ max-width:900px; margin:0 auto; display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.fsp-contact-card{ padding:26px; border-radius:14px; background:var(--fsp-card); border:1px solid var(--fsp-border); text-align:center; transition:transform .3s ease,border-color .3s ease; }
.fsp-contact-card:hover{ transform:translateY(-4px); border-color:rgba(34,211,238,.4); }
.fsp-contact-card__icon{ width:44px; height:44px; margin:0 auto 14px; color:var(--fsp-accent-2); display:flex; align-items:center; justify-content:center; }
.fsp-contact-card__icon svg{ width:100%; height:100%; }
.fsp-contact-card h3{ font-size:15px; text-transform:uppercase; letter-spacing:.06em; color:var(--fsp-text-dim); margin:0 0 8px; font-weight:600; }
.fsp-contact-card p{ margin:0; color:var(--fsp-text); font-size:15.5px; }
.fsp-note{ max-width:700px; margin:36px auto 0; text-align:center; color:var(--fsp-text-dim); font-size:14px; font-style:italic; }

/* ---- Map ---- */
.fsp-map-wrap{
  max-width:900px; margin:48px auto 0; border-radius:16px; overflow:hidden;
  border:1px solid var(--fsp-border); box-shadow:0 20px 50px -24px rgba(0,0,0,.6);
}
.fsp-map-wrap iframe{
  width:100%; height:380px; border:0; display:block;
  filter:grayscale(1) invert(90%) contrast(83%);
  transition:filter .5s ease;
}
.fsp-map-wrap:hover iframe{ filter:none; }

/* Full-width map banner, sits flush at the very bottom of the page */
.fsp-map-section{ width:100%; border-top:1px solid var(--fsp-border); }
.fsp-map-section iframe{
  width:100%; height:440px; border:0; display:block;
  filter:grayscale(1) invert(90%) contrast(83%);
  transition:filter .5s ease;
}
.fsp-map-section:hover iframe{ filter:none; }
@media (max-width:600px){ .fsp-map-section iframe{ height:320px; } }

/* ---- CTA band ---- */
.fsp-cta-band{
  position:relative; overflow:hidden; text-align:center; padding:70px 24px;
  margin:0 24px; border-radius:24px;
  background:linear-gradient(120deg,#0e2140,#0a1120 60%);
  border:1px solid var(--fsp-border);
}
.fsp-cta-band h2{ font-size:clamp(22px,3vw,30px); margin:0 0 24px; color:var(--fsp-text); }

/* ---- Visi Misi ---- */
.fsp-split{ max-width:1000px; margin:0 auto; display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }

/* ---- Reveal on scroll ---- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .fsp-hero__grid,.fsp-hero__blob,.fsp-badge__dot{ animation:none; }
}

@media (max-width:600px){
  .fsp-hero{ padding:90px 20px 70px; }
  .fsp-cta-band{ margin:0 16px; padding:50px 20px; }
}

body.blog .ast-archive-entry-banner{display:none;}
