*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --forest: #1a3a2a; --moss: #2e5c3f; --sage: #6a9c72;
  --lime: #b5d96b; --cream: #f5f0e8; --dark: #0e1f17; --white: #ffffff;
}
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; background: var(--cream); color: var(--forest); overflow-x: hidden; }

/* LAUNCH BANNER */
.launch-banner { background: var(--lime); padding: 0.85rem 2rem; display: flex; align-items: center; justify-content: center; gap: 1.2rem; position: relative; z-index: 200; flex-wrap: wrap; text-align: center; }
.launch-banner-pulse { width: 10px; height: 10px; background: var(--forest); border-radius: 50%; flex-shrink: 0; animation: pulse 1.5s infinite; }
@keyframes pulse { 0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.4);opacity:0.6;} }
.launch-banner p { font-size: 0.88rem; font-weight: 500; color: var(--forest); }
.launch-banner a.banner-link { background: var(--forest); color: var(--lime); padding: 0.35rem 1rem; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: background 0.2s; }
.launch-banner a.banner-link:hover { background: var(--moss); }

/* NAV */
nav { position: fixed; top: 44px; width: 100%; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 5rem; background: rgba(14,31,23,0.94); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(181,217,107,0.12); }
.nav-logo { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-weight: 900; color: var(--lime); text-decoration: none; }
.nav-logo span { color: var(--sage); }
.nav-links { display: flex; gap: 2.5rem; list-style: none; }
.nav-links a { color: rgba(245,240,232,0.7); text-decoration: none; font-size: 0.82rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; transition: color 0.2s; }
.nav-links a:hover, .nav-links a.active { color: var(--lime); }
.nav-cta { background: var(--lime); color: var(--forest); border: none; padding: 0.65rem 1.6rem; font-family: 'DM Sans', sans-serif; font-weight: 500; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; transition: all 0.2s; text-decoration: none; display: inline-block; }
.nav-cta:hover { background: #c8e87f; transform: translateY(-1px); }

/* PAGE HERO (inner pages) */
.page-hero { padding: 12rem 5rem 5rem; background: var(--dark); position: relative; overflow: hidden; }
.page-hero::before { content:''; position:absolute; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(46,92,63,0.3) 0%,transparent 70%); right:-80px; top:-80px; pointer-events:none; }
.page-hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(181,217,107,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(181,217,107,0.03) 1px,transparent 1px); background-size:72px 72px; }
.page-hero-inner { position:relative; z-index:2; }
.eyebrow { display:inline-flex; align-items:center; gap:0.7rem; font-size:0.72rem; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:var(--lime); margin-bottom:1.2rem; }
.eyebrow::before { content:''; width:28px; height:1px; background:var(--lime); }
.page-hero h1 { font-family:'Playfair Display',serif; font-size:clamp(2.8rem,5vw,5rem); font-weight:900; line-height:1.05; letter-spacing:-2px; color:var(--white); margin-bottom:1.4rem; }
.page-hero h1 em { font-style:italic; color:var(--lime); }
.page-hero p { font-size:1.1rem; line-height:1.8; color:rgba(245,240,232,0.6); max-width:600px; font-weight:300; }

/* CONTENT */
.content { padding: 6rem 5rem; }
.label { font-size:0.7rem; letter-spacing:0.22em; text-transform:uppercase; font-weight:500; color:var(--sage); display:flex; align-items:center; gap:0.6rem; margin-bottom:1.2rem; }
.label::before { content:''; width:22px; height:1px; background:var(--sage); }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(2rem,3vw,3rem); font-weight:900; letter-spacing:-1px; margin-bottom:1.4rem; color:var(--forest); }
.section-title em { font-style:italic; color:var(--moss); }

/* BUTTONS */
.btn-primary { background:var(--lime); color:var(--forest); padding:1rem 2.5rem; font-weight:500; font-size:0.9rem; letter-spacing:0.08em; text-transform:uppercase; border:none; cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.2s; }
.btn-primary:hover { background:#c8e87f; transform:translateY(-2px); box-shadow:0 8px 28px rgba(181,217,107,0.25); }
.btn-ghost { border:1px solid rgba(26,58,42,0.25); color:var(--forest); padding:1rem 2.5rem; background:transparent; font-size:0.9rem; cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.2s; }
.btn-ghost:hover { border-color:var(--moss); color:var(--moss); }

/* MARQUEE */
.marquee-bar { background:var(--lime); padding:1rem 0; overflow:hidden; }
.marquee-inner { display:flex; white-space:nowrap; animation:marquee 30s linear infinite; }
.marquee-inner span { font-family:'Playfair Display',serif; font-size:0.95rem; font-weight:700; color:var(--forest); padding:0 2.5rem; }
.marquee-inner .dot { color:var(--moss); padding:0; }
@keyframes marquee { 0%{transform:translateX(0);}100%{transform:translateX(-50%);} }

/* NEWSLETTER */
.newsletter { background:var(--lime); padding:5rem; display:flex; align-items:center; justify-content:space-between; gap:3rem; }
.newsletter-text h3 { font-family:'Playfair Display',serif; font-size:2rem; font-weight:900; color:var(--forest); margin-bottom:0.5rem; }
.newsletter-text p { font-size:0.95rem; color:var(--moss); }
.newsletter-form { display:flex; flex-shrink:0; }
.newsletter-form input { padding:1rem 1.4rem; border:none; font-family:'DM Sans',sans-serif; font-size:0.95rem; background:rgba(255,255,255,0.55); color:var(--forest); outline:none; width:280px; }
.newsletter-form button { background:var(--forest); color:var(--lime); border:none; padding:1rem 1.8rem; font-family:'DM Sans',sans-serif; font-weight:500; font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; }

/* FOOTER */
footer { background:var(--dark); padding:5rem; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; border-top:1px solid rgba(181,217,107,0.1); }
.footer-brand .nav-logo { display:block; margin-bottom:0.6rem; }
.footer-tagline { font-family:'Playfair Display',serif; font-style:italic; font-size:0.9rem; color:var(--lime); margin-bottom:0.8rem; display:block; }
.footer-brand p { font-size:0.88rem; color:rgba(245,240,232,0.4); line-height:1.7; max-width:260px; }
.footer-col h4 { font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--lime); font-weight:500; margin-bottom:1.2rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:0.65rem; }
.footer-col a { font-size:0.88rem; color:rgba(245,240,232,0.4); text-decoration:none; transition:color 0.2s; }
.footer-col a:hover { color:var(--cream); }
.footer-bar { background:var(--dark); padding:1.5rem 5rem; border-top:1px solid rgba(255,255,255,0.05); display:flex; justify-content:space-between; }
.footer-bar p { font-size:0.78rem; color:rgba(245,240,232,0.28); }

@media(max-width:960px){
  nav{padding:1rem 1.5rem;top:54px;}
  .nav-links{display:none;}
  .page-hero{padding:9rem 1.8rem 4rem;}
  .content{padding:4rem 1.8rem;}
  .newsletter{flex-direction:column;padding:3rem 1.8rem;}
  .newsletter-form{flex-direction:column;width:100%;}
  .newsletter-form input{width:100%;}
  footer{grid-template-columns:1fr 1fr;gap:2rem;padding:3rem 1.8rem;}
  .footer-bar{padding:1.5rem 1.8rem;flex-direction:column;gap:0.4rem;}
}
