/* ============ NORTH STAR PROJECT — SHARED STYLES ============ */
:root{
  --purple:#8B5FBF;
  --pink:#D4537E;
  --deep-purple:#534AB7;
  --navy:#1B2A4A;
  --cream:#FAF8F5;
  --teal:#1E9E8C;
  --text:#2A2730;
  --muted:#6b6878;
  --radius:14px;
  --shadow:0 4px 18px rgba(40,20,60,0.08);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.5;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
.container{max-width:1100px;margin:0 auto;padding:0 1.25rem;}

/* ---------- NAV ---------- */
.ns-nav{
  background:linear-gradient(135deg,#C26FA8,#9B6FC9);
  display:flex;align-items:center;justify-content:space-between;
  padding:0.75rem 1.5rem;position:sticky;top:0;z-index:500;
  flex-wrap:wrap;gap:0.5rem;
}
.ns-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:#fff;}
.ns-brand .star-badge{background:#fff;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:18px;}
.ns-links{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;}
.ns-links>a, .ns-drop>summary{color:#fff;font-weight:600;font-size:15px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:4px;}
.ns-drop{position:relative;}
.ns-drop>summary::-webkit-details-marker{display:none;}
.ns-drop[open]>summary{opacity:0.85;}
.ns-dropmenu{
  position:absolute;top:130%;left:0;background:#C988C4;border-radius:10px;
  min-width:210px;box-shadow:var(--shadow);overflow:hidden;z-index:600;
}
.ns-dropmenu a{display:block;padding:12px 18px;color:#2A2032;font-weight:600;font-size:14px;border-bottom:1px solid rgba(0,0,0,0.06);}
.ns-dropmenu a:last-child{border-bottom:none;}
.ns-dropmenu a:hover{background:rgba(255,255,255,0.35);}
.ns-subdrop{border-bottom:1px solid rgba(0,0,0,0.06);}
.ns-subdrop summary{padding:12px 18px;color:#2A2032;font-weight:600;font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.ns-subdrop summary::-webkit-details-marker{display:none;}
.ns-subdrop[open] summary{opacity:0.85;}
.ns-submenu{background:rgba(0,0,0,0.04);}
.ns-submenu a{padding-left:34px;border-bottom:1px solid rgba(0,0,0,0.06);}
.ns-submenu a:last-child{border-bottom:none;}
@media (max-width:880px){
  .ns-links{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:0.25rem;background:rgba(0,0,0,0.08);border-radius:10px;padding:0.5rem;}
  .ns-links.open{display:flex;}
  .ns-dropmenu{position:static;margin-top:4px;}
  .ns-burger{display:block !important;}
}
.ns-burger{display:none;background:none;border:none;color:#fff;font-size:26px;cursor:pointer;}

/* ---------- HERO ---------- */
.ns-hero{
  position:relative;min-height:380px;display:flex;align-items:center;
  background:linear-gradient(135deg,#2b2166,#5a3596,#8a3f7a);
  color:#fff;overflow:hidden;
}
.ns-hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;}
.ns-hero-content{position:relative;z-index:2;padding:2.5rem 1.5rem;max-width:650px;margin-left:auto;text-align:right;}
.ns-hero-content h1{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:500;font-size:clamp(28px,5vw,44px);margin:0 0 0.5rem;line-height:1.25;}
.ns-hero-content p{font-size:16px;opacity:0.85;margin:4px 0;}

/* ---------- PAGE HERO (sub pages) ---------- */
.page-hero{padding:3rem 1.5rem 2.5rem;text-align:center;color:#fff;}
.page-hero h1{font-size:clamp(26px,4vw,38px);margin:0 0 8px;}
.page-hero p{opacity:0.9;max-width:600px;margin:0 auto;font-size:15px;}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-block;padding:12px 26px;border-radius:10px;font-weight:700;font-size:14px;
  background:linear-gradient(135deg,var(--pink),var(--deep-purple));color:#fff;border:none;cursor:pointer;
  transition:transform .15s, opacity .15s;
}
.btn:hover{opacity:0.92;transform:translateY(-1px);}
.btn-outline{background:#fff;color:var(--deep-purple);border:2px solid var(--deep-purple);}
.btn-block{display:block;width:100%;text-align:center;}

/* ---------- SECTIONS / CARDS ---------- */
section{padding:2.5rem 1.5rem;}
.section-title{font-size:clamp(22px,3.5vw,30px);font-weight:800;margin-bottom:0.75rem;}
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;}
.grid{display:grid;gap:1.25rem;}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}

.tile{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;text-align:center;cursor:pointer;transition:transform .15s;}
.tile:hover{transform:translateY(-3px);}
.tile .emoji{font-size:34px;margin-bottom:8px;}
.tile h4{margin:4px 0 2px;font-size:15px;}
.tile p{margin:0;font-size:12px;color:var(--muted);}

/* ---------- CAROUSEL ---------- */
.carousel{position:relative;overflow:hidden;border-radius:var(--radius);max-width:420px;margin:0 auto;}
.carousel-track{display:flex;transition:transform .4s ease;}
.carousel-track img{width:420px;flex-shrink:0;}
.carousel-dots{display:flex;justify-content:center;gap:6px;margin-top:10px;}
.carousel-dots span{width:8px;height:8px;border-radius:50%;background:#ccc;cursor:pointer;}
.carousel-dots span.active{background:var(--deep-purple);}

/* ---------- FOOTER ---------- */
footer{background:#2A2032;color:#fff;padding:2.5rem 1.5rem;text-align:center;}
footer .btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:1.25rem;}
footer p{opacity:0.6;font-size:13px;margin-top:1rem;}

/* ---------- MISC ---------- */
.badge{display:inline-block;padding:4px 12px;border-radius:20px;background:#EEEDFE;color:#3C3489;font-size:12px;font-weight:700;margin-right:6px;}
.note-box{background:#FFF8E6;border:1px solid #F0D98A;border-radius:10px;padding:1rem;font-size:14px;}
.center{text-align:center;}
textarea, input[type=text]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;}
label.field-label{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px;margin-bottom:6px;}
