/* ================= Base ================= */
:root{
  --purple:#5a2ea6;
  --purple-700:#4b2391;
  --ink:#1f1f1f;
  --muted:#6b6b6b;
  --paper:#ffffff;
  --bg:#f6f6fb;
  --radius:12px;
  --shadow:0 8px 24px rgba(0,0,0,.08);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}

body{
  font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  color:var(--ink);
  /* subtle site-wide spotlight + fallback */
  background:
    radial-gradient(1200px 600px at 80% -200px, rgba(90,46,166,.08), transparent 60%),
    #faf9ff;
  display:flex; min-height:100vh; flex-direction:column; /* sticky footer layout */
}

main{flex:1 0 auto}

/* ================= Typography ================= */
h1{font-size:clamp(26px,4.2vw,38px);line-height:1.15;margin:.2rem 0 1rem}
h2{font-size:clamp(20px,3vw,26px);margin:0 0 8px}
h3{margin:0 0 .4rem}
.sub,.muted{color:var(--muted)}
/* heading accent bar */
h1,h2{position:relative}
h1::after,h2::after{content:"";display:block;width:64px;height:4px;border-radius:2px;background:linear-gradient(90deg,#8c6ad5,#5a2ea6);margin:10px 0 6px}

/* ================= Unified Header ================= */
.site-header{
  position:sticky;top:0;z-index:1000;
  background:linear-gradient(180deg,var(--purple),var(--purple-700));
  color:#fff;box-shadow:0 6px 22px rgba(18,18,18,.08);
}
.nav{
  max-width:1120px;margin:0 auto;padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:nowrap
}
.brand{
  display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;
  font-weight:800;font-size:20px;letter-spacing:.2px;white-space:nowrap
}
.brand img{width:32px;height:32px;border-radius:8px;object-fit:cover}
.nav-links{display:inline-flex;align-items:center;gap:16px;flex:0 0 auto}
.nav-links a{
  display:inline-flex;align-items:center;height:36px;padding:0 10px;border-radius:10px;
  color:#e9dcff;text-decoration:none;opacity:.95;transition:background .15s ease,opacity .15s ease
}
.nav-links a:hover{opacity:1;background:rgba(255,255,255,.12)}
.nav-links a.active,.nav-links a[aria-current="page"]{opacity:1;background:rgba(255,255,255,.18)}

@media (max-width:720px){
  .nav{flex-wrap:wrap;row-gap:10px}
  .brand{order:1}
  .nav-links{order:2;width:100%;justify-content:flex-end}
}

/* ================= Layout helpers ================= */
.container{max-width:1120px;margin:24px auto;padding:0 16px}

/* ================= Buttons ================= */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--purple);color:#fff;border-radius:12px;padding:12px 16px;border:0;cursor:pointer;font-weight:700;box-shadow:0 6px 16px rgba(90,46,166,.18);transition:transform .12s ease}
.btn:hover{transform:translateY(-1px)}
.btn-lg{padding:14px 18px;font-weight:800;border-radius:12px}
.btn.light{background:#fff;color:var(--purple);border:1.5px solid #dcd2ff}

/* ================= Cards / Panels ================= */
.panel,.card{
  background:var(--paper);border:1px solid #e5defa;border-radius:16px;
  box-shadow:0 6px 22px rgba(90,46,166,.08);padding:22px;margin:18px 0
}

/* ================= Sectioned marketing layout ================= */
.full-section{padding:84px 0;background:linear-gradient(180deg,rgba(90,46,166,.03),rgba(90,46,166,0) 60%)}
.full-section.alt{background:#f2efff}
@media (max-width:860px){.full-section{padding:64px 0}}

/* ================= HERO (homepage only) ================= */
.home .hero{
  position:relative;color:#fff;text-align:center;
  padding:140px 20px 120px;
  background:
    linear-gradient(180deg, rgba(36,17,77,.08), rgba(36,17,77,.05))

    url('images/hero-bg.jpg') center/cover no-repeat;
}
.home .hero__content{position:relative;z-index:2;text-align:center}
.home .hero h1{font-size:clamp(34px,5.2vw,56px);margin-bottom:14px}
.home .hero__sub{max-width:760px;margin:0 auto 22px;color:#f6f2ff;font-size:clamp(16px,1.5vw,18px)}
.home .hero__cta{display:inline-flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* ================= Features grid ================= */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.feature-grid{grid-template-columns:1fr}}

/* ================= Reveal-on-scroll ================= */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}
.reveal.in{opacity:1;transform:translateY(0)}

/* ================= Forms ================= */
input,textarea,select{font:inherit}
input,textarea,select{
  width:100%;max-width:520px;padding:.6rem;border:1px solid #d7d2e7;border-radius:12px;background:#fff;
  transition:border-color .15s,box-shadow .15s
}
textarea{resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(90,46,166,.16)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:860px){.row{grid-template-columns:1fr}}

/* ================= Gallery ================= */
/* page script creates .grid.auto of tiles; keep these helpers */
.grid{display:grid;gap:16px}
.grid.auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.tile{
  display:block;overflow:hidden;border-radius:14px;border:1px solid #eee;background:#fff;
  transition:transform .18s ease, box-shadow .18s ease;aspect-ratio:4/3
}
.tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.10)}
.tile img{display:block;width:100%;height:100%;object-fit:cover}

/* ================= Footer (full-width purple) ================= */
.site-footer--purple{width:100%;background:linear-gradient(180deg,var(--purple),var(--purple-700));color:#fff}
.site-footer--purple a{color:#e9dcff;text-decoration:none}
.site-footer--purple a:hover{color:#fff;text-decoration:underline}

.site-footer .footer-wrap{max-width:1120px;margin:0 auto;padding:18px 16px 10px}
.footer-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:22px}
.foot-left{text-align:left;justify-self:start}
.foot-center{text-align:center;justify-self:center}
.foot-right{text-align:right;justify-self:end}

.brand--foot{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;letter-spacing:.2px}
.brand--foot img{width:34px;height:34px;border-radius:8px;object-fit:cover}
.foot-contact{margin:.5rem 0 0;font-size:.95rem}
.foot-contact a{border-bottom:1px solid rgba(255,255,255,.24)}
.foot-contact a:hover{border-bottom-color:rgba(255,255,255,.55)}
.foot-col h4{margin:0 0 .3rem;font-size:1rem;font-weight:800}

.foot-links{list-style:none;margin:0;padding:0}
.foot-links--inline{display:inline-flex;gap:18px}

.foot-bottom{border-top:1px solid rgba(255,255,255,.22);text-align:center;padding:10px 16px;color:#f1eaff;font-size:.9rem}

@media (max-width:860px){
  .footer-grid{grid-template-columns:1fr;gap:16px}
  .foot-left,.foot-center,.foot-right{text-align:left;justify-self:start}
  .foot-links--inline{gap:14px}
}
/* === Hero visibility fix (v2) === */
.home .hero{
  /* slightly stronger overlay; remove brightness wash */
  background:
    linear-gradient(180deg, rgba(36,17,77,.22), rgba(36,17,77,.16)),
    url('images/hero-bg.jpg') center/cover no-repeat;
  filter: none;
}

.home .hero h1,
.home .hero .hero__sub{
  color:#fff;
  text-shadow: 0 2px 6px rgba(0,0,0,.25);
}

/* underline accent should be light on the hero */
.home .hero h1::after{
  background: linear-gradient(90deg, rgba(255,255,255,.85), rgba(255,255,255,.55));
}

/* optional: trim vertical space on smaller screens */
@media (max-width: 900px){
  .home .hero{ padding: 110px 16px 90px; }
}
