  :root{
    --navy:#12203D;
    --navy-deep:#0B1526;
    --gold:#C9A24C;
    --gold-soft:#E4CD8F;
    --maroon:#5A1526;
    --cream:#FBF8F2;
    --cream-2:#F3EEE2;
    --ink:#1B1B1B;
    --ink-soft:#4A4A4A;
    --hair: rgba(18,32,61,0.14);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Jost', sans-serif;
    color:var(--ink);
    background:var(--cream);
    line-height:1.6;
    font-weight:400;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{font-family:'Playfair Display', serif; color:var(--navy); font-weight:700; line-height:1.15;}
  .script{font-family:'Marck Script', cursive; font-weight:400;}
  a{text-decoration:none; color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1140px; margin:0 auto; padding:0 28px;}

  /* Divider signature: hairline - diamond - hairline, echoes the logo lockup */
  .divider{display:flex; align-items:center; gap:14px; justify-content:center; margin:18px 0;}
  .divider .line{height:1px; width:56px; background:var(--gold);}
  .divider .dot{width:7px; height:7px; background:var(--gold); transform:rotate(45deg);}
  .divider.left{justify-content:flex-start;}

  .eyebrow{
    font-family:'Jost', sans-serif; letter-spacing:.22em; text-transform:uppercase;
    font-size:.72rem; color:var(--gold); font-weight:600;
  }

  /* NAV */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(251,248,242,0.92); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--hair);
  }
  nav.wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 28px;}
  .brand{display:flex; align-items:center; gap:10px;}
  .brand img{height:38px; width:auto;}
  .brand-text{font-family:'Playfair Display', serif; font-size:1rem; color:var(--navy); font-weight:700; letter-spacing:.02em;}
  .brand-text span{color:var(--gold);}
  .nav-links{display:flex; gap:30px; align-items:center;}
  .nav-links a{font-size:.86rem; color:var(--navy); letter-spacing:.02em; position:relative;}
  .nav-links a:not(.btn)::after{
    content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:var(--gold);
    transition:width .25s ease;
  }
  .nav-links a:not(.btn):hover::after{width:100%;}
  .btn{
    display:inline-block; background:var(--maroon); color:#fff !important; padding:11px 24px;
    font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500;
    border:1px solid var(--maroon); transition:all .25s ease;
  }
  .btn:hover{background:transparent; color:var(--maroon) !important;}
  .btn-gold{background:var(--gold); border-color:var(--gold); color:var(--navy-deep) !important;}
  .btn-gold:hover{background:transparent; color:var(--gold) !important;}
  .btn-outline{background:transparent; border:1px solid var(--cream); color:var(--cream) !important;}
  .btn-outline:hover{background:var(--cream); color:var(--navy) !important;}
  .mobile-toggle{display:none; font-size:1.6rem; color:var(--navy); background:none; border:none; cursor:pointer;}

  /* HERO */
  .hero{
    position:relative; min-height:92vh; display:flex; align-items:flex-end;
    background:linear-gradient(180deg, rgba(11,21,38,.35) 0%, rgba(11,21,38,.55) 55%, rgba(11,21,38,.94) 100%), url('images/hero-photo.jpg') center 18% / cover no-repeat;
  }
  .hero-inner{width:100%; padding:80px 28px 56px; color:#fff;}
  .hero-eyebrow{color:var(--gold-soft); letter-spacing:.24em; text-transform:uppercase; font-size:.78rem; font-weight:600;}
  .hero h1{
    color:#fff; font-size:clamp(2.1rem, 5vw, 3.6rem); margin:16px 0 6px; max-width:820px;
  }
  .hero h1 em{font-style:italic; color:var(--gold-soft);}
  .hero .sub{
    font-family:'Marck Script', cursive; font-size:clamp(1.6rem,3vw,2.4rem); color:var(--gold-soft); margin-bottom:22px;
  }
  .hero-meta{display:flex; flex-wrap:wrap; gap:12px; margin:20px 0 30px;}
  .chip{
    border:1px solid rgba(255,255,255,.35); padding:8px 16px; font-size:.82rem;
    letter-spacing:.03em; color:#EFE9DA; background:rgba(255,255,255,.06);
  }
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap;}

  section{padding:96px 0;}
  .section-head{text-align:center; max-width:680px; margin:0 auto 56px;}
  .section-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem); margin-top:6px;}
  .section-head p{color:var(--ink-soft); margin-top:14px; font-size:1.02rem;}

  /* ABOUT */
  .about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center;}
  .pillars{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
  .pillar{
    border:1px solid var(--navy); color:var(--navy); font-size:.78rem; letter-spacing:.03em;
    padding:8px 16px; text-transform:uppercase; font-weight:500;
  }
  .about-card{
    background:var(--navy); color:var(--cream-2); padding:46px 38px; position:relative;
    border-top:3px solid var(--gold);
  }
  .about-card q{font-family:'Playfair Display', serif; font-style:italic; font-size:1.25rem; display:block; color:#fff; line-height:1.5;}
  .about-card .credit{margin-top:20px; font-size:.85rem; color:var(--gold-soft); letter-spacing:.04em;}

  /* BOOTCAMP DETAILS */
  .details-band{background:var(--navy); color:#fff;}
  .details-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.15);}
  .detail-cell{background:var(--navy); padding:34px 24px; text-align:center;}
  .detail-cell .label{font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:10px;}
  .detail-cell .value{font-family:'Playfair Display', serif; font-size:1.3rem; color:#fff;}

  /* CURRICULUM */
  .curriculum-list{display:grid; grid-template-columns:1fr 1fr; gap:22px 40px; margin-top:10px;}
  .curriculum-item{display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--hair);}
  .curriculum-num{font-family:'Playfair Display', serif; font-size:1.5rem; color:var(--gold); min-width:38px;}
  .curriculum-item h4{font-size:1.05rem; margin-bottom:4px;}
  .curriculum-item p{color:var(--ink-soft); font-size:.92rem;}

  /* INSTRUCTORS */
  .instructor-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px;}
  .instructor-card{background:#fff; box-shadow:0 18px 44px rgba(18,32,61,.1); overflow:hidden;}
  .instructor-card img{width:100%; height:auto;}

  /* PRICING / REGISTER */
  .price-wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:stretch;
  }
  .price-card{
    background:var(--navy); color:#fff; padding:52px 44px; position:relative;
    border:1px solid var(--gold);
  }
  .price-card .old{color:var(--gold-soft); text-decoration:line-through; font-size:1.1rem; opacity:.7;}
  .price-card .now{font-family:'Playfair Display', serif; font-size:3rem; color:var(--gold); margin:6px 0 4px;}
  .price-card .badge{
    display:inline-block; background:var(--gold); color:var(--navy-deep); font-size:.72rem;
    letter-spacing:.06em; text-transform:uppercase; padding:6px 14px; margin-bottom:18px; font-weight:600;
  }
  .price-card ul{margin:26px 0 30px; padding-left:0; list-style:none;}
  .price-card li{padding:8px 0; border-top:1px solid rgba(255,255,255,.12); font-size:.94rem; color:var(--cream-2);}
  .price-card li:first-child{border-top:none;}
  .bank-card{
    background:var(--cream-2); padding:36px; border:1px solid var(--hair);
  }
  .bank-card h3{font-size:1.15rem; margin-bottom:14px;}
  .bank-card img{border:1px solid var(--hair);}
  .bank-card .note{font-size:.86rem; color:var(--ink-soft); margin-top:14px;}

  /* WAITLIST */
  .waitlist{background:var(--maroon); color:#fff; text-align:center;}
  .waitlist h2{color:#fff;}
  .waitlist p{color:#EAD9DC; max-width:560px; margin:14px auto 30px;}

  footer{background:var(--navy-deep); color:#B9C0CF; padding:60px 0 30px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:40px;}
  .footer-brand{display:flex; gap:12px; align-items:center; margin-bottom:14px;}
  .footer-brand img{height:34px;}
  .footer-brand span{font-family:'Playfair Display', serif; color:#fff; font-size:1rem;}
  footer h5{color:var(--gold-soft); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px;}
  footer a{display:block; font-size:.9rem; margin-bottom:8px; color:#B9C0CF;}
  footer a:hover{color:var(--gold-soft);}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.1); padding-top:22px; font-size:.8rem; text-align:center; color:#7C8494;}

  @media (max-width:860px){
    .about-grid, .price-wrap{grid-template-columns:1fr;}
    .details-grid{grid-template-columns:1fr 1fr;}
    .curriculum-list{grid-template-columns:1fr;}
    .instructor-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr; gap:26px;}
    .nav-links{
      position:fixed; top:70px; left:0; right:0; background:var(--cream); flex-direction:column;
      padding:24px 28px; gap:20px; border-bottom:1px solid var(--hair); transform:translateY(-130%);
      transition:transform .3s ease;
    }
    .nav-links.open{transform:translateY(0);}
    .mobile-toggle{display:block;}
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }

/* SOCIAL FEED */
.social-feed-embed{max-width:900px; margin:0 auto; box-shadow:0 18px 44px rgba(18,32,61,.1); background:#fff;}
.social-fallback{text-align:center; margin-top:16px; font-size:.85rem; color:var(--ink-soft);}
.social-fallback a{color:var(--maroon); text-decoration:underline;}

/* Active nav state */
.nav-links a.active{color:var(--maroon);}

/* COMMUNITY & UPDATES */
.update-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px;}
.update-card{background:#fff; box-shadow:0 18px 44px rgba(18,32,61,.1); overflow:hidden; display:flex; flex-direction:column;}
.update-card img{width:100%; height:auto;}
.update-card-body{padding:26px 28px; text-align:center;}
.update-card-body h4{font-size:1.1rem; margin-bottom:8px;}
.update-card-body p{color:var(--ink-soft); font-size:.92rem; margin-bottom:18px;}
@media (max-width:860px){
  .update-grid{grid-template-columns:1fr;}
}
