/* =============================================================
   style.css — iPRO SP global stylesheet
   Load order: tailwind.css → style.css → [page].css
   ============================================================= */

/* Typography */
body { font-family: 'Outfit', system-ui, sans-serif; }

/* Brand link colour */
a { color: #ED1B24; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Accessible focus ring */
:focus-visible { outline: 2px solid #ED1B24; outline-offset: 3px; }

/* Skip-to-content (accessibility) */
.skip-link { position: absolute; left: -9999px; top: auto; }
.skip-link:focus {
  left: 1rem; top: 1rem; z-index: 200;
  padding: .5rem 1rem;
  background: #ED1B24; color: #fff;
  font-weight: 700; font-size: .875rem;
  border-radius: .5rem;
}

/* Scroll-reveal animation */
.section-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s cubic-bezier(.4,0,.2,1), transform .55s cubic-bezier(.4,0,.2,1);
}
.section-reveal.in-view { opacity: 1; transform: none; }

/* Back-to-top button */
#btt {
  position: fixed; bottom: 5.5rem; right: 1.25rem; z-index: 45;
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  background: rgba(237,27,36,.88); border: 1px solid rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  color: #fff; cursor: pointer;
  opacity: 0; pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  backdrop-filter: blur(8px);
}
#btt.btt-show { opacity: 1; pointer-events: auto; }
#btt:hover { transform: translateY(-3px); background: #ED1B24; }

/* Emoji sizing */
.emoji {
  height: 1em; width: 1em;
  margin: 0 0.05em 0 0.1em;
  vertical-align: -0.1em;
  display: inline-block;
}

/* Utilities missing from pre-compiled tailwind.css (used by #iphone-repair & #pilihan) */
.gap-8 { gap: 2rem; }
.h-44 { height: 11rem; }
.max-w-3xl { max-width: 48rem; }
@media (min-width: 1024px) {
  .lg\:gap-12 { gap: 3rem; }
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { transition-duration: .01ms !important; }
  .section-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* =============================================================
   Privacy page styles
   ============================================================= */

.priv-container {
  max-width: 720px;
  margin: 4.5rem auto 0;
  padding: 2.5rem 1.5rem 4rem;
}

.priv-breadcrumb {
  font-size: 0.85rem;
  margin-bottom: 1.75rem;
}

.priv-breadcrumb a {
  color: #6b7280;
  text-decoration: none;
}

.priv-breadcrumb a:hover {
  color: #ED1B24;
  text-decoration: none;
}

h1 {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
  color: #0E014C;
}

.meta {
  font-size: 0.85rem;
  color: #6b7280;
  margin-bottom: 2rem;
}

h2 {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  margin: 2rem 0 0.5rem;
  color: #0E014C;
}

p { font-size: 0.95rem; margin-bottom: 0.6rem; }
li { font-size: 0.95rem; margin-bottom: 0.3rem; }

ul {
  padding-left: 1.4rem;
  margin-bottom: 0.6rem;
  list-style-type: disc;
}

strong { color: #0E014C; }

.box {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  padding: 1.5rem 1.75rem;
  margin-bottom: 1rem;
}

.priv-footer {
  text-align: center;
  padding: 2rem 1rem;
  font-size: 0.8rem;
  color: #6b7280;
  border-top: 1px solid #1f2937;
  background: #0E014C;
}

.priv-footer p { font-size: 0.8rem; color: #6b7280; margin-bottom: 0.25rem; }
.priv-footer a { color: #6b7280; text-decoration: underline; }
.priv-footer a:hover { color: #d1d5db; }

/* =============================================================
   Utilities used by the service pages that are absent from the
   pre-compiled tailwind.css. Without these the classes are silent
   no-ops and section rhythm collapses.
   ============================================================= */
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.pb-10 { padding-bottom: 2.5rem; }
.px-7  { padding-left: 1.75rem; padding-right: 1.75rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; }
.mx-1\.5 { margin-left: .375rem; margin-right: .375rem; }
.mt-8  { margin-top: 2rem; }
.text-\[1\.35rem\] { font-size: 1.35rem; }
.underline-offset-2 { text-underline-offset: 2px; }
.max-w-\[68ch\] { max-width: 68ch; }
.leading-\[1\.7\] { line-height: 1.7; }
.border-l-2 { border-left-width: 2px; }
@media (min-width: 640px) {
  .sm\:text-base       { font-size: 1rem; line-height: 1.5rem; }
  .sm\:text-\[1\.6rem\] { font-size: 1.6rem; }
  .sm\:text-\[1\.8rem\] { font-size: 1.8rem; }
}
@media (min-width: 1024px) {
  .lg\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
  .lg\:pb-14 { padding-bottom: 3.5rem; }
  .lg\:block { display: block; }
}
.gap-x-6 { column-gap: 1.5rem; }
.gap-y-2 { row-gap: .5rem; }

/* Brand tint / opacity variants used throughout index.html that were never
   emitted into the pre-compiled tailwind.css. Without these, ~55 badges and
   pills on the homepage render with no background or border tint at all. */
.bg-rd\/4  { background-color: rgba(237,27,36,.04); }
.bg-rd\/7  { background-color: rgba(237,27,36,.07); }
.bg-rd\/8  { background-color: rgba(237,27,36,.08); }
.bg-rd\/12 { background-color: rgba(237,27,36,.12); }
.border-rd\/12 { border-color: rgba(237,27,36,.12); }
.border-rd\/18 { border-color: rgba(237,27,36,.18); }
.bg-white\/12 { background-color: rgba(255,255,255,.12); }
.hover\:bg-white\/92:hover { background-color: rgba(255,255,255,.92); }
.hover\:text-neutral-600:hover { color: rgb(82 82 82); }
.gap-x-4 { column-gap: 1rem; }
.gap-y-6 { row-gap: 1.5rem; }
.pb-6    { padding-bottom: 1.5rem; }
.max-w-\[80ch\] { max-width: 80ch; }
@media (min-width: 1024px) { .lg\:w-auto { width: auto; } }
