
:root{
  --maroon:#420000; --maroon-ink:#2a0000; --cream:#f7f1e4; --parchment:#fffaf3;
  --gold:#b8863b; --gold-bright:#d4a84e; --forest:#41492f; --charcoal:#241f1a; --line:#e6d9bd;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--parchment); color:var(--charcoal); font-family:'Inter',sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3,.display{font-family:'Fraunces',serif; font-weight:600; letter-spacing:-0.01em;}
img{max-width:100%; display:block;}
a{color:inherit;}
.mockup-tag{position:fixed; top:10px; right:10px; z-index:999; background:var(--maroon); color:var(--cream); font-family:'Inter',sans-serif; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:20px; opacity:.9; box-shadow:0 2px 8px rgba(0,0,0,.25);}

.nav{position:sticky; top:0; z-index:100; background:var(--parchment); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:12px 5vw;}
.nav .brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.nav .brand img{height:40px; width:auto;}
.nav .brand span{font-family:'Fraunces',serif; font-weight:600; font-size:1.05rem; color:var(--maroon);}
.nav .links{display:flex; gap:26px; font-size:.92rem; font-weight:500;}
.nav .links a{padding:4px 0; border-bottom:2px solid transparent; text-decoration:none;}
.nav .links a:hover{border-color:var(--gold);}
.nav .links a.active{border-color:var(--maroon); color:var(--maroon); font-weight:700;}
.nav .cta-group{display:flex; align-items:center; gap:16px;}
.nav .phone{font-size:.88rem; font-weight:600; color:var(--maroon); white-space:nowrap; text-decoration:none;}
.btn{display:inline-block; text-decoration:none; font-weight:600; font-size:.88rem; padding:10px 20px; border-radius:4px; cursor:pointer; border:1px solid transparent; font-family:'Inter',sans-serif;}
.btn-primary{background:var(--gold); color:var(--maroon-ink); border:none;}
.btn-primary:hover{background:var(--gold-bright);}
.btn-outline{border-color:var(--cream); color:var(--cream);}
.btn-outline.dark{border-color:var(--maroon); color:var(--maroon);}
.mobile-toggle{display:none; font-size:1.4rem; background:none; border:none; color:var(--maroon); cursor:pointer;}

.page-hero{position:relative; min-height:46vh; display:flex; align-items:flex-end; background:linear-gradient(180deg, rgba(42,0,0,.35) 0%, rgba(42,0,0,.6) 60%, rgba(20,0,0,.9) 100%), var(--hero-img) center/cover no-repeat;}
.page-hero-inner{color:var(--cream); padding:44px 5vw 40px; max-width:760px;}
.page-hero .crumb{font-size:.82rem; color:#e4d5b3; margin-bottom:14px;}
.page-hero .crumb a{text-decoration:none; opacity:.85;}
.page-hero .crumb a:hover{opacity:1;}
.page-hero .eyebrow{text-transform:uppercase; letter-spacing:.2em; font-size:.74rem; color:var(--gold-bright); margin-bottom:12px; font-weight:600;}
.page-hero h1{font-size:clamp(2rem,5vw,3.1rem); margin:0 0 14px; line-height:1.05;}
.page-hero p{font-size:1.05rem; color:#efe4cc; max-width:56ch; margin:0;}

.ribbon-strip{height:6px; width:100%; background:linear-gradient(90deg, var(--maroon) 0 20%, var(--gold) 20% 40%, var(--forest) 40% 60%, var(--cream) 60% 80%, var(--maroon) 80% 100%);}

.wrap{max-width:1120px; margin:0 auto; padding:0 5vw;}
section{padding:64px 0;}
.kicker{display:flex; align-items:center; gap:12px; text-transform:uppercase; letter-spacing:.2em; font-size:.74rem; color:var(--gold); font-weight:700; margin-bottom:12px;}
.kicker::before{content:""; width:26px; height:2px; background:var(--gold);}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:32px; flex-wrap:wrap;}
.section-head h2{font-size:2rem; margin:0; color:var(--maroon);}
.section-head p{max-width:50ch; color:#5a4f41; margin:8px 0 0; font-size:1rem;}
p.lede{font-size:1.1rem; color:#4a3f34; max-width:70ch;}

/* pricing cards */
.price-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.price-card{border:1px solid var(--line); border-radius:12px; padding:26px 24px; background:var(--cream);}
.price-card.featured{border-color:var(--gold); background:#fbf1dc; position:relative;}
.price-card .badge{position:absolute; top:-12px; right:20px; background:var(--maroon); color:var(--cream); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; padding:4px 10px; border-radius:20px;}
.price-card h3{margin:0 0 6px; font-size:1.2rem; color:var(--maroon-ink);}
.price-card .amount{font-family:'Fraunces',serif; font-size:2rem; color:var(--maroon); margin:6px 0;}
.price-card .amount small{font-family:'Inter'; font-size:.85rem; color:#7a6f61; font-weight:500;}
.price-card ul{padding-left:18px; margin:14px 0 0; font-size:.9rem; color:#5a4f41;}
.price-card li{margin-bottom:6px;}

/* addon row */
.addon-row{display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid var(--line); font-size:.95rem;}
.addon-row:first-child{border-top:none;}
.addon-row .amt{font-weight:700; color:var(--maroon);}

/* accordion / policy panel */
.policy-panel{border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--cream);}
.policy-head{padding:18px 22px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:600;}
.policy-head .plus{font-size:1.2rem; color:var(--gold);}
.policy-body{padding:0 22px 20px; font-size:.92rem; color:#5a4f41;}
.policy-body ul{padding-left:18px; margin:0;}
.policy-body li{margin-bottom:8px;}

/* facility grid */
.facility-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.fact{border:1px solid var(--line); border-radius:10px; padding:20px; text-align:center; background:var(--cream);}
.fact strong{display:block; font-family:'Fraunces',serif; font-size:1.5rem; color:var(--maroon);}
.fact span{font-size:.8rem; color:#7a6f61; text-transform:uppercase; letter-spacing:.06em;}

/* gallery */
.gallery{display:grid; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:12px; height:380px;}
.gallery img{width:100%; height:100%; object-fit:cover; border-radius:8px;}
.gallery .g1{grid-row:1 / 3;}

/* quote block */
.quote-block{background:var(--maroon); color:var(--cream); border-radius:14px; padding:44px 5vw; text-align:center;}
.quote-block blockquote{font-family:'Fraunces',serif; font-style:italic; font-size:1.5rem; max-width:720px; margin:0 auto; line-height:1.5;}

/* dress code / prep list */
.prep-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.prep-card{border:1px solid var(--line); border-radius:12px; padding:24px; background:var(--cream);}
.prep-card h3{margin:0 0 12px; font-size:1.1rem; color:var(--maroon-ink); display:flex; align-items:center; gap:8px;}
.prep-card ul{padding-left:18px; margin:0; font-size:.92rem; color:#5a4f41;}
.prep-card li{margin-bottom:8px;}

/* upcoming */
.upcoming{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.up-card{border:1px solid var(--line); border-radius:10px; padding:22px; display:flex; gap:16px; align-items:flex-start;}
.up-card .date{font-family:'Fraunces',serif; text-align:center; background:var(--maroon); color:var(--cream); border-radius:8px; padding:10px 14px; min-width:64px;}
.up-card .date strong{display:block; font-size:1.3rem; line-height:1;}
.up-card .date span{display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-bright); margin-top:2px;}
.up-card h4{margin:0 0 4px; font-size:1.02rem; font-family:'Fraunces',serif;}
.up-card p{margin:0; font-size:.88rem; color:#5a4f41;}
.up-card .tag{display:inline-block; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); font-weight:700; margin-bottom:4px;}

/* about preview / person */
.person-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px; align-items:center;}
.person-grid img{border-radius:10px; width:100%; height:100%; object-fit:cover; max-height:440px;}
.person-grid .quote{font-family:'Fraunces',serif; font-style:italic; font-size:1.3rem; color:var(--maroon-ink); line-height:1.5; margin:0 0 20px;}
.credential-list{display:flex; flex-direction:column; gap:14px; margin:22px 0;}
.credential-list .row{display:flex; gap:12px; align-items:flex-start;}
.credential-list .row .dot{width:8px; height:8px; border-radius:50%; background:var(--gold); margin-top:8px; flex-shrink:0;}
.credential-list .row p{margin:0; font-size:.95rem; color:#4a3f34;}
.credential-list .row strong{color:var(--maroon-ink);}

/* testimonial */
.testimonial-band{background:var(--cream); border:1px solid var(--line); border-radius:14px; padding:44px 5vw; text-align:center;}
.testimonial-band .stars{color:var(--gold); font-size:1.2rem; letter-spacing:.15em; margin-bottom:16px;}
.testimonial-band blockquote{font-family:'Fraunces',serif; font-style:italic; font-size:1.4rem; max-width:680px; margin:0 auto 18px; color:var(--maroon-ink); line-height:1.5;}
.testimonial-band .who{font-size:.88rem; color:#7a6f61; font-weight:600;}

/* contact / form */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
.contact-info h2{color:var(--maroon); font-size:2rem; margin:0 0 14px;}
.contact-info p{color:#5a4f41; max-width:42ch;}
.contact-info .row{display:flex; gap:12px; align-items:flex-start; margin:18px 0; font-size:.95rem;}
.contact-info .row .ico{width:34px; height:34px; border-radius:50%; background:var(--cream); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:.9rem; flex-shrink:0; color:var(--maroon);}
.map-placeholder{margin-top:22px; height:180px; border-radius:10px; border:1px solid var(--line); background:repeating-linear-gradient(45deg,#efe6d0,#efe6d0 10px,#f6efdd 10px,#f6efdd 20px); display:flex; align-items:center; justify-content:center; color:#8a7c63; font-size:.82rem; letter-spacing:.05em; text-transform:uppercase;}
.form-card{background:var(--cream); border:1px solid var(--line); border-radius:12px; padding:32px;}
.form-card h3{margin:0 0 4px; font-size:1.3rem; color:var(--maroon-ink);}
.form-card .sub{font-size:.88rem; color:#7a6f61; margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:.82rem; font-weight:600; margin-bottom:6px; color:var(--charcoal);}
.field input, .field select, .field textarea{width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:6px; font-family:'Inter',sans-serif; font-size:.92rem; background:var(--parchment); color:var(--charcoal);}
.field textarea{min-height:80px; resize:vertical;}
.form-card .btn-primary{width:100%; text-align:center; padding:13px; font-size:.95rem;}

/* generic CTA band */
.cta-band{background:var(--maroon); color:var(--cream); border-radius:14px; padding:40px 5vw; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;}
.cta-band h3{margin:0 0 4px; font-size:1.5rem;}
.cta-band p{margin:0; color:#e4d5b3; font-size:.95rem;}

/* footer */
footer{background:var(--maroon-ink); color:#d8c9a3; padding:48px 5vw 28px; margin-top:20px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; padding-bottom:30px; border-bottom:1px solid rgba(247,241,228,.14);}
.footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:12px; text-decoration:none;}
.footer-brand img{height:34px; background:var(--cream); border-radius:4px; padding:2px 4px;}
.footer-brand span{font-family:'Fraunces',serif; font-size:1.1rem; color:var(--cream); font-weight:600;}
footer h5{color:var(--cream); font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; margin:0 0 14px;}
footer ul{list-style:none; padding:0; margin:0; font-size:.9rem;}
footer li{margin-bottom:10px;}
footer a{text-decoration:none; opacity:.9;}
footer a:hover{opacity:1; color:var(--gold-bright);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:20px; font-size:.8rem; flex-wrap:wrap; gap:10px; color:#b9a97f;}
.socials{display:flex; gap:14px;}
.socials a{width:32px; height:32px; border-radius:50%; border:1px solid rgba(247,241,228,.3); display:flex; align-items:center; justify-content:center; font-size:.8rem;}

@media (max-width:900px){
  .nav .links, .nav .phone{display:none;}
  .mobile-toggle{display:block;}
  .price-grid, .facility-grid, .prep-grid, .upcoming, .footer-grid, .person-grid, .contact-grid, .why-grid, .prog-grid{grid-template-columns:1fr;}
  .gallery{grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,130px); height:auto;}
  .gallery .g1{grid-row:auto; grid-column:span 2;}
  section{padding:36px 0;}
  .cta-band{flex-direction:column; text-align:center;}
  .hero{min-height:64vh;}
  .hero-inner, .page-hero-inner{padding:40px 6vw 30px;}
  .hero p{margin-bottom:24px;}
  .wrap{padding:0 6vw;}
  .trustbar{padding:16px 4vw;}
  .trustbar .item{padding:6px 14px; flex:1 1 40%;}
  body{padding-bottom:64px;} /* room for sticky mobile CTA bar */
  .mobile-cta-bar{display:flex;}
  .price-card.featured{order:-1;}
}

/* mobile dropdown menu */
.mobile-menu{
  display:none; flex-direction:column; gap:2px;
  position:sticky; top:64px; z-index:99;
  background:var(--parchment); border-bottom:1px solid var(--line);
  padding:8px 6vw 18px;
}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  padding:12px 4px; font-size:1rem; font-weight:500; text-decoration:none;
  border-bottom:1px solid var(--line); color:var(--charcoal);
}
.mobile-menu a.active{color:var(--maroon); font-weight:700;}
.mobile-menu .mm-phone{color:var(--maroon); font-weight:700; border-bottom:1px solid var(--line);}
.mobile-menu .btn-primary{margin-top:14px;}

/* sticky bottom mobile action bar */
.mobile-cta-bar{
  display:none;
  position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:var(--maroon-ink); border-top:1px solid rgba(247,241,228,.15);
  padding:10px 5vw; gap:10px;
  box-shadow:0 -4px 14px rgba(0,0,0,.25);
}
.mobile-cta-bar a{
  flex:1; text-align:center; padding:12px 10px; border-radius:6px;
  font-size:.92rem; font-weight:700; text-decoration:none;
}
.mobile-cta-bar .mcb-call{background:transparent; border:1px solid var(--gold-bright); color:var(--cream);}
.mobile-cta-bar .mcb-book{background:var(--gold); color:var(--maroon-ink);}

@media (max-width:480px){
  .hero h1, .page-hero h1{font-size:1.9rem;}
  .hero p, .page-hero p{font-size:1rem;}
  .trustbar .item{flex:1 1 100%; border-left:none; border-top:1px solid rgba(247,241,228,.18); padding:10px 0;}
  .trustbar .item:first-child{border-top:none;}
  .quote-block blockquote, .testimonial-band blockquote{font-size:1.15rem;}
  .price-card .amount{font-size:1.6rem;}
}

/* ===== HOME-ONLY: full hero + trust bar + why + programs ===== */
.hero{position:relative; min-height:88vh; display:flex; align-items:flex-end; background:linear-gradient(180deg, rgba(42,0,0,.25) 0%, rgba(42,0,0,.55) 55%, rgba(20,0,0,.88) 100%), var(--home-hero-img) center/cover no-repeat;}
.hero-inner{color:var(--cream); padding:64px 5vw 56px; max-width:760px;}
.hero .eyebrow{text-transform:uppercase; letter-spacing:.22em; font-size:.75rem; color:var(--gold-bright); margin-bottom:16px; font-weight:600;}
.hero h1{font-size:clamp(2.4rem, 6vw, 4rem); line-height:1.04; margin:0 0 20px;}
.hero p{font-size:1.15rem; color:#efe4cc; max-width:52ch; margin:0 0 32px;}
.hero .ctas{display:flex; gap:14px; flex-wrap:wrap;}

.trustbar{background:var(--maroon-ink); color:var(--cream); display:flex; flex-wrap:wrap; justify-content:center; gap:0; padding:22px 5vw; font-family:'Fraunces', serif;}
.trustbar .item{padding:6px 32px; text-align:center; border-left:1px solid rgba(247,241,228,.18);}
.trustbar .item:first-child{border-left:none;}
.trustbar .item strong{display:block; font-size:1.5rem; color:var(--gold-bright);}
.trustbar .item small{display:block; font-family:'Inter',sans-serif; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:#d8c9a3; margin-top:2px;}

.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.why-card{border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:32px 28px;}
.why-card .mark{font-family:'Fraunces',serif; font-size:1.6rem; color:var(--gold); margin-bottom:14px;}
.why-card h3{font-size:1.15rem; margin:0 0 8px; color:var(--maroon-ink);}
.why-card p{font-size:.94rem; color:#5a4f41; margin:0;}

.programs{background:var(--maroon); color:var(--cream); border-radius:14px; padding:44px 5vw;}
.programs .section-head h2{color:var(--cream);}
.programs .section-head p{color:#e4d5b3;}
.prog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.prog-card{background:rgba(255,255,255,.06); border:1px solid rgba(247,241,228,.18); border-radius:10px; overflow:hidden; display:flex; flex-direction:column;}
.prog-card img{height:150px; object-fit:cover; width:100%;}
.prog-body{padding:22px 22px 24px;}
.prog-card h3{font-size:1.3rem; margin:0 0 6px;}
.prog-card .price{font-family:'Inter'; font-weight:700; color:var(--gold-bright); font-size:.95rem; margin-bottom:10px;}
.prog-card p{font-size:.92rem; color:#e4d5b3; margin:0 0 16px;}
.prog-card a{font-size:.86rem; font-weight:700; color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-bright); padding-bottom:2px;}

:root{--home-hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Entrance.jpg');}
body.nbs-page-lessons .page-hero{--hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Welcome-1-1.jpg');}
body.nbs-page-boarding .page-hero{--hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Welcome-3.jpg');}
body.nbs-page-shows .page-hero{--hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Entrance.jpg');}
body.nbs-page-camp .page-hero{--hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Welcome-4.jpg');}
body.nbs-page-about .page-hero{--hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Welcome-2.jpg');}
body.nbs-page-contact .page-hero{--hero-img:url('https://newbeginningsstable.net/wp-content/uploads/2021/07/Welcome-5.jpg');}
