*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --black: #0A0A0A; --black-mid: #111111; --black-card: #161616;
  --black-lift: #1E1E1E; --black-border: #2A2A2A;
  --gold: #C9A84C; --gold-light: #E2C06A;
  --white: #FFFFFF; --off-white: #F5F0E8; --mid: #888880; --dim: #555550;
}
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; background: var(--black); color: var(--off-white); overflow-x: hidden; min-height: 100vh; display: flex; flex-direction: column; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--black); }
::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 3px; }

/* LOGO BANNER */
.logo-banner { width:100%; background:var(--black); border-top:2px solid var(--gold); border-bottom:2px solid var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px 32px 16px; gap:0; }
.lb-top { font-family:'Cormorant Garamond',serif; font-size:clamp(2.6rem,8vw,6rem); font-weight:600; color:var(--gold); letter-spacing:0.15em; line-height:1; white-space:nowrap; display:flex; align-items:center; gap:0.25em; }
.lb-top .spade { font-size:0.75em; }
.lb-mid { width:100%; display:flex; align-items:center; gap:0; margin:4px 0 2px; }
.lb-mid-line { flex:1; height:1px; background:var(--gold); }
.lb-mid-text { font-family:'DM Sans',sans-serif; font-size:clamp(0.6rem,2vw,0.9rem); font-weight:600; color:var(--gold); letter-spacing:0.5em; text-transform:uppercase; padding:0 16px; white-space:nowrap; }
.lb-bot { font-family:'DM Sans',sans-serif; font-size:clamp(0.5rem,1.5vw,0.72rem); color:rgba(201,168,76,0.6); letter-spacing:0.25em; text-transform:uppercase; white-space:nowrap; }

/* NAV */
nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:0 52px; height:70px; background:rgba(10,10,10,0.95); backdrop-filter:blur(20px); border-bottom:1px solid rgba(201,168,76,0.15); }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; color:var(--white); letter-spacing:0.04em; text-decoration:none; }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex; gap:6px; align-items:center; height:70px; }
.nav-links a { background:var(--black-lift); border:1px solid var(--black-border); color:var(--off-white); font-family:'DM Sans',sans-serif; font-size:0.82rem; font-weight:600; letter-spacing:0.07em; text-transform:uppercase; padding:10px 20px; text-decoration:none; display:inline-flex; align-items:center; transition:background 0.2s,border-color 0.2s,color 0.2s; border-radius:2px; }
.nav-links a:hover { background:var(--black-border); color:var(--gold); border-color:rgba(201,168,76,0.4); }
.nav-links a.active { background:var(--gold); color:var(--black); border-color:var(--gold); font-weight:700; }
.nav-cta { background:var(--gold) !important; color:var(--black) !important; border:1px solid var(--gold) !important; padding:10px 22px !important; font-size:0.82rem !important; font-weight:700 !important; letter-spacing:0.07em !important; text-transform:uppercase; text-decoration:none; display:inline-flex; align-items:center; border-radius:2px; margin-left:8px; transition:background 0.2s !important; }
.nav-cta:hover { background:var(--gold-light) !important; }
.hamburger { display:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; padding:8px; }
.hamburger span { width:22px; height:1.5px; background:var(--gold); display:block; }
.mobile-menu { display:none; position:fixed; top:70px; left:0; right:0; background:rgba(10,10,10,0.99); border-bottom:1px solid rgba(201,168,76,0.2); z-index:99; padding:20px 24px; }
.mobile-menu a { display:block; width:100%; background:var(--black-lift); border:1px solid var(--black-border); color:var(--off-white); font-family:'DM Sans',sans-serif; font-size:0.88rem; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; padding:16px 24px; text-align:left; text-decoration:none; margin-bottom:8px; border-radius:2px; transition:background 0.2s,color 0.2s,border-color 0.2s; }
.mobile-menu a:last-child { margin-bottom:0; }
.mobile-menu a:hover, .mobile-menu a.active { background:var(--gold); color:var(--black); border-color:var(--gold); }
.mobile-menu.open { display:block; }

/* SHARED */
.page-wrap { padding-top: 70px; flex: 1; }
.section-label { display:inline-flex; align-items:center; gap:12px; font-size:0.7rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.section-label::before { content:''; width:24px; height:1px; background:var(--gold); }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,4vw,3.2rem); font-weight:600; line-height:1.1; margin-bottom:18px; }
.section-sub { font-size:1rem; line-height:1.8; color:var(--mid); font-weight:300; max-width:520px; }
.btn-gold { display:inline-block; background:var(--gold); color:var(--black); padding:15px 34px; font-weight:700; font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase; text-decoration:none; border:none; cursor:pointer; font-family:'DM Sans',sans-serif; transition:background 0.2s,transform 0.2s; box-shadow:0 0 28px rgba(201,168,76,0.2); }
.btn-gold:hover { background:var(--gold-light); transform:translateY(-2px); }
.btn-outline { display:inline-flex; align-items:center; gap:10px; border:1px solid var(--black-border); color:var(--off-white); padding:14px 26px; font-weight:500; font-size:0.85rem; text-decoration:none; background:none; font-family:'DM Sans',sans-serif; transition:border-color 0.2s,color 0.2s; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }
.gold-divider { display:flex; align-items:center; gap:20px; padding:8px 52px; opacity:0.35; }
.gold-divider::before, .gold-divider::after { content:''; flex:1; height:1px; background:linear-gradient(to right,transparent,var(--gold),transparent); }
.gold-divider span { font-size:0.9rem; letter-spacing:14px; color:var(--gold); }

/* FOOTER */
footer { background:var(--black-card); border-top:1px solid var(--black-border); padding:28px 52px; display:flex; justify-content:space-between; align-items:center; flex-shrink:0; }
.footer-left p { font-size:0.78rem; color:var(--dim); }
.footer-right { display:flex; gap:12px; align-items:center; }
.footer-social { width:34px; height:34px; border:1px solid var(--black-border); display:flex; align-items:center; justify-content:center; font-size:0.85rem; text-decoration:none; color:var(--mid); transition:border-color 0.2s,color 0.2s; }
.footer-social:hover { border-color:var(--gold); color:var(--gold); }
.footer-tagline { font-size:0.72rem; color:var(--dim); letter-spacing:0.06em; text-transform:uppercase; }

/* HOME */
.hero { min-height:calc(100vh - 70px); display:grid; grid-template-columns:1fr 1fr; align-items:center; padding:80px 52px; gap:70px; position:relative; overflow:hidden; }
.hero::before { content:''; position:absolute; top:-200px; right:-200px; width:700px; height:700px; background:radial-gradient(circle,rgba(201,168,76,0.1) 0%,transparent 65%); border-radius:50%; z-index:0; pointer-events:none; }
.hero-content { position:relative; z-index:1; }
.hero-badge { display:inline-flex; align-items:center; gap:10px; border:1px solid rgba(201,168,76,0.4); color:var(--gold); font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; padding:7px 16px; margin-bottom:28px; }
.badge-line { width:20px; height:1px; background:var(--gold); }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(3rem,6vw,5rem); line-height:1.02; font-weight:600; margin-bottom:28px; }
.hero h1 em { font-style:italic; color:var(--gold); }
.hero-sub { font-size:1.05rem; line-height:1.8; color:var(--mid); max-width:460px; margin-bottom:44px; font-weight:300; }
.hero-actions { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.hero-visual { position:relative; z-index:1; display:flex; justify-content:center; }
.photo-outer { position:relative; width:320px; }
.photo-outer::before,.photo-outer::after { content:''; position:absolute; width:30px; height:30px; border-color:var(--gold); border-style:solid; z-index:2; }
.photo-outer::before { top:-8px; left:-8px; border-width:2px 0 0 2px; }
.photo-outer::after { bottom:-8px; right:-8px; border-width:0 2px 2px 0; }
.photo-inner-corners::before,.photo-inner-corners::after { content:''; position:absolute; width:30px; height:30px; border-color:var(--gold); border-style:solid; z-index:2; }
.photo-inner-corners::before { top:-8px; right:-8px; border-width:2px 2px 0 0; }
.photo-inner-corners::after { bottom:-8px; left:-8px; border-width:0 0 2px 2px; }
.hero-photo-frame { width:100%; height:420px; background:var(--black-card); border:1px solid var(--black-border); position:relative; overflow:hidden; }
.photo-label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top,rgba(10,10,10,0.97) 0%,rgba(10,10,10,0.7) 60%,transparent 100%); padding:40px 24px 22px; z-index:2; }
.photo-label-name { font-family:'Cormorant Garamond',serif; font-size:1.35rem; font-weight:600; color:var(--white); }
.photo-label-title { font-size:0.72rem; color:var(--gold); letter-spacing:0.1em; text-transform:uppercase; margin-top:4px; }

/* ABOUT */
.about-page { padding:70px 52px; }
.about-hero { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; margin-bottom:80px; }
.about-img-frame { width:100%; max-width:400px; aspect-ratio:4/5; position:relative; overflow:hidden; border:1px solid var(--black-border); }
.about-img-frame::after { content:''; position:absolute; bottom:0; right:0; width:40px; height:40px; border-bottom:2px solid var(--gold); border-right:2px solid var(--gold); z-index:2; }
.about-img-frame::before { content:''; position:absolute; top:0; left:0; width:40px; height:40px; border-top:2px solid var(--gold); border-left:2px solid var(--gold); z-index:2; }
.manifesto { border:1px solid rgba(201,168,76,0.2); background:var(--black-card); padding:56px 64px; position:relative; overflow:hidden; margin-bottom:80px; }
.manifesto::before { content:'"  '; position:absolute; top:-20px; left:40px; font-family:'Cormorant Garamond',serif; font-size:12rem; color:var(--gold); opacity:0.07; line-height:1; pointer-events:none; }
.manifesto::after { content:''; position:absolute; top:0; left:0; width:4px; height:100%; background:var(--gold); }
.manifesto p { font-family:'Cormorant Garamond',serif; font-size:clamp(1.3rem,2.5vw,1.8rem); font-style:italic; line-height:1.65; color:var(--off-white); position:relative; z-index:1; }
.manifesto p em { color:var(--gold); font-style:italic; }
.manifesto cite { display:block; margin-top:22px; font-size:0.82rem; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; font-style:normal; position:relative; z-index:1; }
.pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.pillar { background:var(--black-card); border:1px solid var(--black-border); padding:36px 30px; transition:border-color 0.25s; }
.pillar:hover { border-color:rgba(201,168,76,0.35); }
.pillar-icon { font-size:1.5rem; color:var(--gold); margin-bottom:18px; }
.pillar h3 { font-family:'Cormorant Garamond',serif; font-size:1.25rem; font-weight:600; margin-bottom:12px; color:var(--white); }
.pillar p { font-size:0.86rem; line-height:1.75; color:var(--mid); }

/* PROGRAMS */
.programs-page { padding:70px 52px; }
.paths-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-bottom:80px; }
.path-card { background:var(--black-card); padding:40px 32px; border:1px solid var(--black-border); position:relative; overflow:hidden; transition:border-color 0.3s,transform 0.25s; }
.path-card:hover { border-color:rgba(201,168,76,0.35); transform:translateY(-4px); }
.path-card.featured { background:var(--gold); border-color:var(--gold); }
.path-card.featured * { color:var(--black) !important; }
.path-card.featured .path-btn { background:var(--black); color:var(--gold) !important; }
.path-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform 0.35s; }
.path-card:not(.featured):hover::before { transform:scaleX(1); }
.path-suit { font-size:2rem; color:var(--gold); margin-bottom:22px; display:block; }
.path-card.featured .path-suit { color:var(--black); }
.path-level { font-size:0.68rem; font-weight:600; text-transform:uppercase; letter-spacing:0.12em; color:var(--gold); margin-bottom:10px; }
.path-title { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:600; margin-bottom:14px; color:var(--white); }
.path-desc { font-size:0.86rem; line-height:1.75; color:var(--mid); margin-bottom:26px; }
.path-features { list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:32px; }
.path-features li { font-size:0.83rem; display:flex; align-items:center; gap:10px; color:var(--mid); }
.path-features li::before { content:'◆'; font-size:0.4rem; color:var(--gold); }
.path-card.featured .path-features li::before { color:var(--black); }
.path-btn { display:inline-block; text-decoration:none; font-weight:700; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; padding:13px 26px; background:transparent; color:var(--gold); border:1px solid var(--gold); cursor:pointer; font-family:'DM Sans',sans-serif; transition:background 0.2s,color 0.2s; }
.path-btn:hover { background:var(--gold); color:var(--black); }
.endorsements-strip { background:var(--black-card); border:1px solid var(--black-border); padding:56px 64px; }
.endorse-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:40px; }
.endorse-card { border:1px solid var(--black-border); padding:40px 28px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:180px; opacity:0.45; }
.endorse-suit { font-size:1.8rem; color:var(--gold); margin-bottom:14px; }
.endorse-label { font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--dim); }
.endorse-sub { font-size:0.7rem; color:var(--dim); margin-top:6px; }

/* COURSES */
.courses-page { padding:70px 52px; }
.courses-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:52px; }
.course-card { background:var(--black-card); border:1px solid var(--black-border); padding:32px; display:flex; gap:20px; align-items:flex-start; transition:border-color 0.25s,transform 0.2s; }
.course-card:hover { border-color:rgba(201,168,76,0.3); transform:translateX(4px); }
.course-card.horse { border-color:rgba(201,168,76,0.4); grid-column:span 3; flex-direction:row; align-items:center; gap:40px; padding:40px; }
.c-icon { width:50px; height:50px; flex-shrink:0; border:1px solid rgba(201,168,76,0.3); display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:var(--gold); font-family:'Cormorant Garamond',serif; font-weight:600; }
.course-card.horse .c-icon { width:64px; height:64px; font-size:1.6rem; border-color:var(--gold); background:rgba(201,168,76,0.08); }
.c-body { flex:1; }
.c-body h3 { font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:600; margin-bottom:8px; color:var(--white); }
.course-card.horse .c-body h3 { font-size:1.5rem; }
.c-body p { font-size:0.83rem; color:var(--mid); line-height:1.72; margin-bottom:14px; }
.c-meta { display:flex; gap:10px; flex-wrap:wrap; }
.c-tag { font-size:0.68rem; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; color:var(--gold); border:1px solid rgba(201,168,76,0.3); padding:3px 10px; }
.horse-badge { display:inline-block; background:var(--gold); color:var(--black); font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; padding:4px 12px; margin-bottom:10px; }
.horse-breakdown { display:grid; grid-template-columns:repeat(5,1fr); gap:2px; margin-top:28px; }
.horse-game { background:var(--black-lift); border:1px solid var(--black-border); padding:16px 10px; text-align:center; }
.horse-game .letter { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:600; color:var(--gold); }
.horse-game .name { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--dim); margin-top:4px; }

/* CONTACT */
.contact-page { padding:70px 52px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.contact-details { display:flex; flex-direction:column; gap:20px; margin-bottom:48px; }
.contact-item { display:flex; align-items:center; gap:16px; padding:20px; border:1px solid var(--black-border); background:var(--black-card); transition:border-color 0.2s; }
.contact-item:hover { border-color:rgba(201,168,76,0.35); }
.contact-icon { font-size:1.2rem; color:var(--gold); width:32px; text-align:center; flex-shrink:0; }
.contact-text a { color:var(--off-white); text-decoration:none; font-size:0.9rem; font-weight:500; transition:color 0.2s; }
.contact-text a:hover { color:var(--gold); }
.contact-text p { font-size:0.75rem; color:var(--dim); margin-top:3px; text-transform:uppercase; letter-spacing:0.08em; }
.contact-form-wrap { background:var(--black-card); border:1px solid var(--black-border); padding:48px; position:relative; }
.contact-form-wrap::before { content:''; position:absolute; top:0; left:0; width:40px; height:40px; border-top:2px solid var(--gold); border-left:2px solid var(--gold); }
.contact-form-wrap::after { content:''; position:absolute; bottom:0; right:0; width:40px; height:40px; border-bottom:2px solid var(--gold); border-right:2px solid var(--gold); }
.form-title { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:600; margin-bottom:32px; color:var(--white); }
.form-group { margin-bottom:20px; }
.form-group label { display:block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--dim); margin-bottom:8px; }
.form-group input,.form-group select,.form-group textarea { width:100%; background:var(--black-lift); border:1px solid var(--black-border); color:var(--off-white); font-family:'DM Sans',sans-serif; font-size:0.9rem; padding:14px 16px; outline:none; transition:border-color 0.2s; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--gold); }
.form-group input::placeholder,.form-group textarea::placeholder { color:var(--dim); }
.form-group select option { background:var(--black-card); }
.form-group textarea { resize:vertical; min-height:100px; }
.email-join { display:flex; gap:0; }
.email-join input { flex:1; background:var(--black-lift); border:1px solid var(--black-border); color:var(--off-white); font-family:'DM Sans',sans-serif; font-size:0.9rem; padding:15px 18px; outline:none; transition:border-color 0.2s; }
.email-join input:focus { border-color:var(--gold); }
.email-join input::placeholder { color:var(--dim); }
.email-join button { padding:15px 24px; background:var(--gold); color:var(--black); font-family:'DM Sans',sans-serif; font-weight:700; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; border:none; cursor:pointer; white-space:nowrap; transition:background 0.2s; }
.email-join button:hover { background:var(--gold-light); }

/* RESPONSIVE */
@media(max-width:900px){
  nav { padding:0 24px; }
  .nav-links { display:none; }
  .hamburger { display:flex; }

  /* BANNER */
  .logo-banner { padding:12px 16px; }
  .lb-top { font-size:clamp(1.8rem,10vw,3rem); letter-spacing:0.08em; }
  .lb-mid-text { letter-spacing:0.25em; font-size:0.65rem; }
  .lb-bot { font-size:0.55rem; letter-spacing:0.12em; }

  /* HOME */
  .hero { grid-template-columns:1fr; padding:32px 20px 52px; gap:32px; }
  .hero-visual { order:-1; }
  .photo-outer { width:100%; max-width:340px; margin:0 auto; }
  .hero-photo-frame { height:360px; }
  .hero h1 { font-size:2.4rem; }
  .hero-sub { font-size:0.95rem; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:12px; }
  .btn-gold, .btn-outline { width:100%; justify-content:center; text-align:center; }

  /* ABOUT */
  .about-page { padding:32px 20px; }
  .about-hero { grid-template-columns:1fr; gap:32px; }
  .about-img-frame { max-width:100%; aspect-ratio:3/2; }
  .manifesto { padding:28px 22px; }
  .manifesto p { font-size:1.1rem; }
  .pillars { grid-template-columns:1fr; gap:2px; }

  /* PROGRAMS */
  .programs-page { padding:32px 20px; }
  .paths-grid { grid-template-columns:1fr; gap:12px; }
  .endorsements-strip { padding:32px 20px; }
  .endorsements-strip > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }

  /* COURSES */
  .courses-page { padding:32px 20px; }
  .courses-grid { grid-template-columns:1fr; gap:12px; }
  .course-card.horse { grid-column:span 1; flex-direction:column; gap:20px; padding:24px; }
  .horse-breakdown { grid-template-columns:repeat(3,1fr); }

  /* CONTACT */
  .contact-page { grid-template-columns:1fr; gap:36px; padding:32px 20px; }
  .contact-form-wrap { padding:28px 22px; }
  .email-join { flex-direction:column; }
  .email-join input { border-right:1px solid var(--black-border); }

  /* SHARED */
  .section-title { font-size:1.9rem; }
  .endorse-grid,.pillars { grid-template-columns:1fr; }
  footer { flex-direction:column; gap:16px; text-align:center; padding:20px; }
  .gold-divider { padding:8px 20px; }
}

/* MOBILE ENDORSEMENT FIX */
@media(max-width:768px){
  .endorse-3col {
    display:flex !important;
    flex-direction:column !important;
    gap:24px !important;
  }
  .endorse-3col > div {
    width:100% !important;
  }
  .endorse-3col p {
    font-size:1.05rem !important;
    line-height:1.8 !important;
    word-break:normal !important;
    hyphens:none !important;
  }
  .sweep-name-email {
    grid-template-columns:1fr !important;
  }
}
