:root{
  --bv-ink:#11201a;
  --bv-deep:#123024;
  --bv-deep-2:#0a1f17;
  --bv-green:#1c4a35;
  --bv-green-soft:#2c6448;
  --bv-sage:#8fb79c;
  --bv-rose:#bf4761;
  --bv-rose-dark:#9c3247;
  --bv-blush:#f0d9de;
  --bv-cream:#f6f1e8;
  --bv-sand:#e7ddcc;
  --bv-white:#ffffff;
  --bv-body-ink:#33413a;
  --bv-line:rgba(17,32,26,.12);
  --bv-radius:18px;
  --bv-radius-lg:30px;
  --bv-radius-pill:999px;
  --bv-shadow:0 22px 55px rgba(17,32,26,.16);
  --bv-shadow-sm:0 10px 26px rgba(17,32,26,.10);
  --bv-font-display:"Playfair Display","Iowan Old Style","Times New Roman",Georgia,serif;
  --bv-font-body:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --bv-ease:cubic-bezier(.22,.61,.36,1);
  --bv-header-h:86px;
}

*,
*::before,
*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;
  font-family:var(--bv-font-body);
  font-size:17px;
  line-height:1.7;
  color:var(--bv-body-ink);
  background-color:var(--bv-cream);
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}
a{color:var(--bv-green);text-decoration:none;transition:color .25s var(--bv-ease)}
a:hover{color:var(--bv-rose)}

h1,h2,h3,h4,h5{
  font-family:var(--bv-font-display);
  color:var(--bv-ink);
  line-height:1.14;
  letter-spacing:-.015em;
  margin:0 0 .55em;
  font-weight:600;
}

h1{font-size:clamp(2.3rem,5.2vw,4.1rem)}
h2{font-size:clamp(1.85rem,3.6vw,2.85rem)}
h3{font-size:clamp(1.3rem,2.1vw,1.75rem)}
h4{font-size:1.15rem}
p{margin:0 0 1.1em}
ul,ol{padding-left:1.15rem}
li{margin-bottom:.45rem}

.bv-container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 22px;
}

.bv-container--narrow{max-width:900px}

.bv-section{
  position:relative;
  padding:96px 0;
  overflow:hidden;
}

.bv-section--tight{padding:64px 0}
.bv-section--cream{background:var(--bv-cream)}
.bv-section--sand{background:var(--bv-sand)}
.bv-section--white{background:var(--bv-white)}
.bv-section--dark{
  background:var(--bv-deep);
  color:#e8f1ea;
}
.bv-section--dark h1,
.bv-section--dark h2,
.bv-section--dark h3,
.bv-section--dark h4{color:var(--bv-white)}
.bv-section--dark p{color:#d3e2d7}

.bv-section--overlay{
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  color:var(--bv-white);
}
.bv-section--overlay h1,
.bv-section--overlay h2,
.bv-section--overlay h3,
.bv-section--overlay h4{color:var(--bv-white)}
.bv-section--overlay p{color:#e6efe9}

.bv-section-head{
  max-width:720px;
  margin:0 auto 58px;
  text-align:center;
}

.bv-section-head--left{margin-left:0;text-align:left}

.bv-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--bv-font-body);
  font-size:.78rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--bv-rose);
  margin-bottom:16px;
}
.bv-section--dark .bv-eyebrow,
.bv-section--overlay .bv-eyebrow{color:var(--bv-blush)}

.bv-eyebrow::before{
  content:"";
  width:34px;
  height:2px;
  background:currentColor;
  display:inline-block;
}

.bv-lead{
  font-size:1.12rem;
  line-height:1.8;
}

.bv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 32px;
  border-radius:var(--bv-radius-pill);
  font-family:var(--bv-font-body);
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.04em;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .3s var(--bv-ease),background-color .3s var(--bv-ease),color .3s var(--bv-ease),border-color .3s var(--bv-ease),box-shadow .3s var(--bv-ease);
  text-align:center;
}

.bv-btn--primary{
  background:var(--bv-rose);
  color:#ffffff;
  box-shadow:0 14px 30px rgba(191,71,97,.32);
}
.bv-btn--primary:hover,.bv-btn--primary:focus{
  background:var(--bv-rose-dark);
  color:#ffffff;
  transform:translateY(-3px);
}

.bv-btn--ghost{
  background:transparent;
  color:var(--bv-white);
  border-color:rgba(255,255,255,.6);
}
.bv-btn--ghost:hover,.bv-btn--ghost:focus{
  background:#ffffff;
  color:var(--bv-deep);
  border-color:#ffffff;
  transform:translateY(-3px);
}

.bv-btn--outline{
  background:transparent;
  color:var(--bv-green);
  border-color:var(--bv-green);
}
.bv-btn--outline:hover,.bv-btn--outline:focus{
  background:var(--bv-green);
  color:#ffffff;
  transform:translateY(-3px);
}

.bv-btn--block{width:100%}
.bv-btn--sm{padding:11px 22px;font-size:.85rem}

.bv-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.bv-actions--center{justify-content:center}

.bv-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:1030;
  background:rgba(10,31,23,.86);
  backdrop-filter:blur(12px);
  transition:background-color .35s var(--bv-ease),box-shadow .35s var(--bv-ease),padding .35s var(--bv-ease);
  padding:14px 0;
}

.bv-header.is-stuck{
  background:rgba(10,31,23,.98);
  box-shadow:0 12px 34px rgba(0,0,0,.28);
  padding:8px 0;
}

.bv-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}

.bv-header__brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:#ffffff;
  font-family:var(--bv-font-display);
  font-size:1.28rem;
  letter-spacing:.02em;
}
.bv-header__brand:hover{color:var(--bv-blush)}
.bv-header__brand img{height:40px;width:auto}

.bv-header__meta{
  display:flex;
  align-items:center;
  gap:26px;
  color:#dbe8de;
  font-size:.85rem;
}
.bv-header__meta span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.bv-header__meta i{color:var(--bv-sage)}

.bv-nav{display:flex;align-items:center;gap:26px}
.bv-nav__list{
  display:flex;
  align-items:center;
  gap:26px;
  list-style:none;
  margin:0;
  padding:0;
}
.bv-nav__list li{margin:0}
.bv-nav__list a{
  color:#e4efe7;
  font-size:.92rem;
  font-weight:600;
  letter-spacing:.03em;
  position:relative;
  padding-bottom:4px;
}
.bv-nav__list a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:2px;
  background:var(--bv-rose);
  transition:width .3s var(--bv-ease);
}
.bv-nav__list a:hover,
.bv-nav__list a.is-active{color:#ffffff}
.bv-nav__list a:hover::after,
.bv-nav__list a.is-active::after{width:100%}

.bv-nav-toggle{
  display:none;
  background:transparent;
  border:1px solid rgba(255,255,255,.45);
  color:#ffffff;
  border-radius:12px;
  width:46px;
  height:44px;
  font-size:1.15rem;
  cursor:pointer;
  transition:background-color .25s var(--bv-ease);
}
.bv-nav-toggle:hover{background:rgba(255,255,255,.14)}

.bv-hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  padding:calc(var(--bv-header-h) + 70px) 0 96px;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  color:#ffffff;
}

.bv-hero h1{color:#ffffff;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.bv-hero p{color:#e8f1ea;max-width:620px}

.bv-hero__grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:60px;
  align-items:center;
}

.bv-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}

.bv-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 18px;
  border-radius:var(--bv-radius-pill);
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3);
  color:#ffffff;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.03em;
}
.bv-chip i{color:var(--bv-blush)}

.bv-hero__card{
  background:rgba(255,255,255,.97);
  border-radius:var(--bv-radius-lg);
  padding:34px;
  box-shadow:var(--bv-shadow);
  color:var(--bv-body-ink);
}
.bv-hero__card h3{color:var(--bv-ink);margin-bottom:14px}
.bv-hero__card ul{list-style:none;padding:0;margin:0 0 22px}
.bv-hero__card li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:11px 0;
  border-bottom:1px dashed var(--bv-line);
  color:var(--bv-body-ink);
}
.bv-hero__card li:last-child{border-bottom:0}
.bv-hero__card li i{color:var(--bv-rose);margin-top:4px}

.bv-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:26px;
}

.bv-stat{
  background:var(--bv-white);
  border-radius:var(--bv-radius);
  padding:32px 26px;
  box-shadow:var(--bv-shadow-sm);
  border:1px solid var(--bv-line);
  transition:transform .35s var(--bv-ease),box-shadow .35s var(--bv-ease);
}
.bv-stat:hover{transform:translateY(-6px);box-shadow:var(--bv-shadow)}

.bv-stat__num{
  font-family:var(--bv-font-display);
  font-size:2.6rem;
  line-height:1;
  color:var(--bv-green);
  margin-bottom:10px;
}
.bv-stat__label{
  font-size:.9rem;
  color:var(--bv-body-ink);
  font-weight:600;
  letter-spacing:.02em;
}

.bv-grid{display:grid;gap:30px}
.bv-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.bv-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.bv-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}

.bv-card{
  background:var(--bv-white);
  border-radius:var(--bv-radius-lg);
  overflow:hidden;
  box-shadow:var(--bv-shadow-sm);
  border:1px solid var(--bv-line);
  display:flex;
  flex-direction:column;
  transition:transform .4s var(--bv-ease),box-shadow .4s var(--bv-ease);
  height:100%;
}
.bv-card:hover{transform:translateY(-8px);box-shadow:var(--bv-shadow)}

.bv-card__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--bv-sand);
}
.bv-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s var(--bv-ease);
}
.bv-card:hover .bv-card__media img{transform:scale(1.07)}

.bv-card__tag{
  position:absolute;
  top:16px;
  left:16px;
  background:rgba(10,31,23,.85);
  color:#ffffff;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  padding:7px 14px;
  border-radius:var(--bv-radius-pill);
}

.bv-card__body{
  padding:28px;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}
.bv-card__body h3{margin-bottom:10px}
.bv-card__body p{color:var(--bv-body-ink);margin-bottom:18px}
.bv-card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.bv-card__price{
  font-family:var(--bv-font-display);
  font-size:1.35rem;
  color:var(--bv-green);
}

.bv-link-arrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:.9rem;
  color:var(--bv-rose);
}
.bv-link-arrow i{transition:transform .3s var(--bv-ease)}
.bv-link-arrow:hover i{transform:translateX(5px)}

.bv-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}

.bv-media-frame{
  position:relative;
  border-radius:var(--bv-radius-lg);
  overflow:hidden;
  box-shadow:var(--bv-shadow);
  aspect-ratio:5/6;
  background:var(--bv-sand);
}
.bv-media-frame img{width:100%;height:100%;object-fit:cover}

.bv-media-frame--wide{aspect-ratio:16/10}

.bv-media-badge{
  position:absolute;
  bottom:22px;
  left:22px;
  background:var(--bv-rose);
  color:#ffffff;
  border-radius:var(--bv-radius);
  padding:16px 22px;
  box-shadow:0 16px 34px rgba(0,0,0,.24);
}
.bv-media-badge strong{
  display:block;
  font-family:var(--bv-font-display);
  font-size:1.5rem;
  line-height:1.1;
}
.bv-media-badge span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}

.bv-list-check{list-style:none;padding:0;margin:0 0 26px}
.bv-list-check li{
  display:flex;
  gap:13px;
  align-items:flex-start;
  margin-bottom:13px;
}
.bv-list-check i{color:var(--bv-rose);margin-top:5px}

.bv-steps{
  counter-reset:bv-step;
  display:grid;
  gap:24px;
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.bv-step{
  position:relative;
  background:var(--bv-white);
  border-radius:var(--bv-radius);
  padding:30px 24px;
  border:1px solid var(--bv-line);
  box-shadow:var(--bv-shadow-sm);
}
.bv-step::before{
  counter-increment:bv-step;
  content:counter(bv-step,decimal-leading-zero);
  font-family:var(--bv-font-display);
  font-size:2rem;
  color:var(--bv-sage);
  display:block;
  margin-bottom:12px;
}
.bv-step h4{margin-bottom:8px}
.bv-step p{margin:0;font-size:.95rem}

.bv-quote{
  background:var(--bv-white);
  border-radius:var(--bv-radius-lg);
  padding:36px;
  box-shadow:var(--bv-shadow-sm);
  border:1px solid var(--bv-line);
  height:100%;
  display:flex;
  flex-direction:column;
}
.bv-quote__stars{color:#d99b2b;margin-bottom:14px;letter-spacing:2px}
.bv-quote__text{font-size:1.02rem;flex:1 1 auto}
.bv-quote__author{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--bv-line);
}
.bv-quote__author img{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  background:var(--bv-sand);
}
.bv-quote__author strong{display:block;color:var(--bv-ink);font-size:.95rem}
.bv-quote__author span{font-size:.82rem;color:var(--bv-body-ink)}

.bv-partners{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:52px;
  opacity:.92;
}
.bv-partners img{
  max-height:38px;
  width:auto;
  filter:grayscale(1) brightness(1.9);
  transition:filter .3s var(--bv-ease),transform .3s var(--bv-ease);
}
.bv-partners img:hover{filter:none;transform:translateY(-3px)}

.bv-slider{
  position:relative;
  border-radius:var(--bv-radius-lg);
  overflow:hidden;
  box-shadow:var(--bv-shadow);
  background:var(--bv-deep-2);
}
.bv-slider__viewport{position:relative}
.bv-slide{
  display:none;
  position:relative;
  min-height:520px;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  padding:70px 60px;
  align-items:center;
}
.bv-slide.is-active{display:flex;animation:bvFade .7s var(--bv-ease)}
@keyframes bvFade{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
.bv-slide__content{max-width:640px;color:#ffffff}
.bv-slide__content h3{color:#ffffff;font-size:clamp(1.6rem,3vw,2.4rem)}
.bv-slide__content p{color:#e6efe9}

.bv-slider__nav{
  position:absolute;
  bottom:26px;
  right:26px;
  display:flex;
  gap:10px;
  z-index:5;
}
.bv-slider__btn{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.5);
  background:rgba(10,31,23,.55);
  color:#ffffff;
  cursor:pointer;
  transition:background-color .25s var(--bv-ease),transform .25s var(--bv-ease);
}
.bv-slider__btn:hover{background:var(--bv-rose);transform:translateY(-2px)}

.bv-slider__dots{
  position:absolute;
  bottom:38px;
  left:60px;
  display:flex;
  gap:10px;
  z-index:5;
}
.bv-slider__dots button{
  width:11px;
  height:11px;
  border-radius:50%;
  border:0;
  background:rgba(255,255,255,.45);
  cursor:pointer;
  padding:0;
  transition:background-color .25s var(--bv-ease),width .25s var(--bv-ease);
}
.bv-slider__dots button.is-active{background:var(--bv-rose);width:30px;border-radius:6px}

.bv-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.bv-gallery__item{
  position:relative;
  border-radius:var(--bv-radius);
  overflow:hidden;
  aspect-ratio:1/1;
  background:var(--bv-sand);
}
.bv-gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s var(--bv-ease);
}
.bv-gallery__item:hover img{transform:scale(1.08)}
.bv-gallery__caption{
  position:absolute;
  inset:auto 0 0 0;
  padding:18px;
  background:linear-gradient(to top,rgba(10,31,23,.9),rgba(10,31,23,0));
  color:#ffffff;
  font-size:.88rem;
  font-weight:600;
}
.bv-gallery__item--tall{grid-row:span 2;aspect-ratio:auto}

.bv-accordion{border-radius:var(--bv-radius);overflow:hidden;border:1px solid var(--bv-line);background:var(--bv-white)}
.bv-accordion__item + .bv-accordion__item{border-top:1px solid var(--bv-line)}
.bv-accordion__btn{
  width:100%;
  text-align:left;
  background:transparent;
  border:0;
  padding:22px 26px;
  font-family:var(--bv-font-display);
  font-size:1.08rem;
  color:var(--bv-ink);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.bv-accordion__btn i{color:var(--bv-rose);transition:transform .3s var(--bv-ease)}
.bv-accordion__btn[aria-expanded="true"] i{transform:rotate(45deg)}
.bv-accordion__panel{
  max-height:0;
  overflow:hidden;
  transition:max-height .4s var(--bv-ease);
}
.bv-accordion__panel p{padding:0 26px 24px;margin:0;color:var(--bv-body-ink)}

.bv-price-card{
  background:var(--bv-white);
  border-radius:var(--bv-radius-lg);
  border:1px solid var(--bv-line);
  padding:34px;
  box-shadow:var(--bv-shadow-sm);
  display:flex;
  flex-direction:column;
  height:100%;
  transition:transform .35s var(--bv-ease),box-shadow .35s var(--bv-ease);
}
.bv-price-card:hover{transform:translateY(-6px);box-shadow:var(--bv-shadow)}
.bv-price-card--featured{
  background:var(--bv-deep);
  border-color:var(--bv-deep);
  color:#e2eee6;
}
.bv-price-card--featured h3,
.bv-price-card--featured h4{color:#ffffff}
.bv-price-card--featured p{color:#cfe0d5}
.bv-price-card__amount{
  font-family:var(--bv-font-display);
  font-size:2.6rem;
  line-height:1;
  color:var(--bv-green);
  margin:10px 0 6px;
}
.bv-price-card--featured .bv-price-card__amount{color:var(--bv-blush)}
.bv-price-card__note{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;opacity:.85}
.bv-price-card__list{
  list-style:none;
  padding:0;
  margin:22px 0 26px;
  flex:1 1 auto;
}
.bv-price-card__list li{
  display:flex;
  gap:11px;
  align-items:flex-start;
  margin-bottom:11px;
  font-size:.95rem;
}
.bv-price-card__list i{color:var(--bv-rose);margin-top:5px}
.bv-price-card--featured .bv-price-card__list i{color:var(--bv-blush)}

.bv-table-wrap{overflow-x:auto;border-radius:var(--bv-radius);border:1px solid var(--bv-line);background:var(--bv-white)}
.bv-table{width:100%;border-collapse:collapse;min-width:640px}
.bv-table th,.bv-table td{padding:17px 22px;text-align:left;border-bottom:1px solid var(--bv-line)}
.bv-table th{
  background:var(--bv-deep);
  color:#ffffff;
  font-family:var(--bv-font-body);
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.bv-table tr:last-child td{border-bottom:0}
.bv-table td:last-child{font-weight:700;color:var(--bv-green);white-space:nowrap}

.bv-form{
  background:var(--bv-white);
  border-radius:var(--bv-radius-lg);
  padding:38px;
  box-shadow:var(--bv-shadow);
  border:1px solid var(--bv-line);
}
.bv-field{margin-bottom:20px;position:relative}
.bv-field label{
  display:block;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--bv-ink);
  margin-bottom:8px;
}
.bv-field input,
.bv-field select,
.bv-field textarea{
  width:100%;
  padding:14px 17px;
  border-radius:12px;
  border:1px solid rgba(17,32,26,.22);
  background:#fbfaf7;
  font-family:var(--bv-font-body);
  font-size:.98rem;
  color:var(--bv-ink);
  transition:border-color .25s var(--bv-ease),box-shadow .25s var(--bv-ease),background-color .25s var(--bv-ease);
}
.bv-field textarea{min-height:132px;resize:vertical}
.bv-field input:focus,
.bv-field select:focus,
.bv-field textarea:focus{
  outline:none;
  border-color:var(--bv-green);
  background:#ffffff;
  box-shadow:0 0 0 4px rgba(28,74,53,.14);
}
.bv-field input.is-invalid,
.bv-field select.is-invalid,
.bv-field textarea.is-invalid{
  border-color:var(--bv-rose);
  background:#fdf4f6;
  box-shadow:0 0 0 4px rgba(191,71,97,.12);
}
.bv-error{
  display:block;
  color:var(--bv-rose-dark);
  font-size:.82rem;
  font-weight:600;
  margin-top:7px;
}
.bv-check{
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:.9rem;
  color:var(--bv-body-ink);
  margin-bottom:22px;
}
.bv-check input{width:19px;height:19px;margin-top:3px;accent-color:var(--bv-green);flex:0 0 auto}

.bv-form--dark{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.2);
  box-shadow:none;
}
.bv-form--dark .bv-field label{color:#ffffff}
.bv-form--dark .bv-field input,
.bv-form--dark .bv-field select,
.bv-form--dark .bv-field textarea{
  background:rgba(255,255,255,.94);
  color:var(--bv-ink);
  border-color:transparent;
}
.bv-form--dark .bv-check{color:#dbe8de}

.bv-note{
  display:none;
  margin-top:18px;
  padding:15px 19px;
  border-radius:12px;
  font-size:.92rem;
  font-weight:600;
  background:rgba(28,74,53,.12);
  color:var(--bv-ink);
  border-left:4px solid var(--bv-green);
}
.bv-note.is-visible{display:block;animation:bvFade .4s var(--bv-ease)}
.bv-note--error{background:rgba(191,71,97,.12);border-left-color:var(--bv-rose)}

.bv-newsletter{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:flex-start;
}
.bv-newsletter .bv-field{flex:1 1 260px;margin-bottom:0}

.bv-checks{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px 26px;
  margin-top:30px;
}
.bv-checks span{
  display:flex;
  gap:10px;
  align-items:center;
  font-size:.93rem;
  font-weight:600;
  color:var(--bv-ink);
}
.bv-checks i{color:var(--bv-rose)}

.bv-map-wrap{
  border-radius:var(--bv-radius-lg);
  overflow:hidden;
  box-shadow:var(--bv-shadow);
  border:1px solid var(--bv-line);
  line-height:0;
  background:var(--bv-sand);
}
.bv-map-wrap iframe{
  width:100%;
  height:440px;
  border:0;
  display:block;
}

.bv-info-card{
  background:var(--bv-white);
  border-radius:var(--bv-radius);
  padding:28px;
  border:1px solid var(--bv-line);
  box-shadow:var(--bv-shadow-sm);
  display:flex;
  gap:18px;
  align-items:flex-start;
  height:100%;
}
.bv-info-card i{
  font-size:1.2rem;
  color:#ffffff;
  background:var(--bv-green);
  width:46px;
  height:46px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.bv-info-card h4{margin-bottom:6px}
.bv-info-card p{margin:0;font-size:.95rem}

.bv-team{
  background:var(--bv-white);
  border-radius:var(--bv-radius-lg);
  overflow:hidden;
  border:1px solid var(--bv-line);
  box-shadow:var(--bv-shadow-sm);
  height:100%;
  transition:transform .35s var(--bv-ease),box-shadow .35s var(--bv-ease);
}
.bv-team:hover{transform:translateY(-6px);box-shadow:var(--bv-shadow)}
.bv-team__photo{aspect-ratio:4/5;overflow:hidden;background:var(--bv-sand)}
.bv-team__photo img{width:100%;height:100%;object-fit:cover}
.bv-team__body{padding:24px}
.bv-team__body h4{margin-bottom:3px}
.bv-team__role{
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--bv-rose);
  margin-bottom:12px;
}
.bv-team__body p{margin:0;font-size:.93rem}

.bv-timeline{
  position:relative;
  padding-left:34px;
  border-left:2px solid var(--bv-line);
}
.bv-timeline__item{position:relative;padding-bottom:36px}
.bv-timeline__item:last-child{padding-bottom:0}
.bv-timeline__item::before{
  content:"";
  position:absolute;
  left:-43px;
  top:6px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--bv-rose);
  border:3px solid var(--bv-cream);
}
.bv-section--white .bv-timeline__item::before{border-color:var(--bv-white)}
.bv-timeline__year{
  font-size:.8rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--bv-green);
  margin-bottom:6px;
}

.bv-note-card{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.22);
  border-radius:var(--bv-radius);
  padding:26px;
  color:#e8f1ea;
  height:100%;
}
.bv-note-card h4{color:#ffffff;margin-bottom:10px}
.bv-note-card p{margin:0;font-size:.94rem}

.bv-cookie{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translate(-50%,140%);
  width:min(1080px,calc(100% - 36px));
  background:rgba(10,31,23,.97);
  color:#e8f1ea;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--bv-radius);
  box-shadow:0 26px 60px rgba(0,0,0,.42);
  padding:24px 28px;
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center;
  justify-content:space-between;
  z-index:1080;
  transition:transform .5s var(--bv-ease),opacity .5s var(--bv-ease);
  opacity:0;
}
.bv-cookie.is-visible{transform:translate(-50%,0);opacity:1}
.bv-cookie__text{flex:1 1 420px;font-size:.9rem;line-height:1.6}
.bv-cookie__text strong{display:block;color:#ffffff;font-family:var(--bv-font-display);font-size:1.08rem;margin-bottom:6px}
.bv-cookie__text a{color:var(--bv-blush);text-decoration:underline}
.bv-cookie__actions{display:flex;gap:12px;flex-wrap:wrap}

.bv-to-top{
  position:fixed;
  right:22px;
  bottom:24px;
  width:48px;
  height:48px;
  border-radius:50%;
  border:0;
  background:var(--bv-green);
  color:#ffffff;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s var(--bv-ease),transform .3s var(--bv-ease);
  z-index:1040;
}
.bv-to-top.is-visible{opacity:1;pointer-events:auto}
.bv-to-top:hover{background:var(--bv-rose);transform:translateY(-3px)}

.bv-footer{
  background:var(--bv-deep-2);
  color:#cfe0d5;
  padding:82px 0 0;
}
.bv-footer h4{
  color:#ffffff;
  font-size:1.02rem;
  letter-spacing:.04em;
  margin-bottom:20px;
}
.bv-footer p{color:#c3d4c9;font-size:.93rem}
.bv-footer a{color:#cfe0d5}
.bv-footer a:hover{color:var(--bv-blush)}
.bv-footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:44px;
  padding-bottom:56px;
}
.bv-footer__list{list-style:none;padding:0;margin:0}
.bv-footer__list li{margin-bottom:11px}
.bv-footer__list a{font-size:.93rem}
.bv-footer__contact li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
  font-size:.93rem;
}
.bv-footer__contact i{color:var(--bv-sage);margin-top:4px}
.bv-footer__brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
  color:#ffffff;
  font-family:var(--bv-font-display);
  font-size:1.3rem;
}
.bv-footer__brand img{height:40px;width:auto}
.bv-footer__bottom{
  border-top:1px solid rgba(255,255,255,.14);
  padding:26px 0;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  justify-content:space-between;
  font-size:.85rem;
  color:#a9bfb2;
}
.bv-footer__legal{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  padding:0;
  margin:0;
  list-style:none;
}
.bv-footer__legal li{margin:0}

.bv-legal p{font-size:.98rem}
.bv-legal h2{margin-top:42px}
.bv-legal h2:first-of-type{margin-top:0}

.bv-divider{
  height:1px;
  background:var(--bv-line);
  border:0;
  margin:0;
}

.bv-highlight{
  color:var(--bv-rose);
  font-style:italic;
}

.bv-tag-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:24px 0 0;
}
.bv-tag{
  padding:7px 15px;
  border-radius:var(--bv-radius-pill);
  background:rgba(28,74,53,.1);
  color:var(--bv-green);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.04em;
}
.bv-section--dark .bv-tag,
.bv-section--overlay .bv-tag{
  background:rgba(255,255,255,.15);
  color:#ffffff;
}

.bv-ordering{
  display:flex;
  flex-wrap:wrap;
  gap:26px;
  align-items:center;
  justify-content:space-between;
  background:var(--bv-white);
  border-radius:var(--bv-radius-lg);
  border:1px solid var(--bv-line);
  box-shadow:var(--bv-shadow-sm);
  padding:32px 36px;
}

@media (max-width:1100px){
  .bv-header__meta span:nth-child(2){display:none}
  .bv-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bv-footer__grid{grid-template-columns:1fr 1fr;gap:38px}
}

@media (max-width:991px){
  .bv-nav-toggle{display:block}
  .bv-nav{
    position:fixed;
    inset:0 0 0 auto;
    width:min(360px,86vw);
    background:var(--bv-deep-2);
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    padding:104px 30px 40px;
    transform:translateX(105%);
    transition:transform .4s var(--bv-ease);
    box-shadow:-20px 0 60px rgba(0,0,0,.35);
    z-index:1035;
    overflow-y:auto;
  }
  .bv-nav.is-open{transform:translateX(0)}
  .bv-nav__list{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    width:100%;
  }
  .bv-nav__list li{width:100%}
  .bv-nav__list a{
    display:block;
    padding:14px 0;
    font-size:1.02rem;
    border-bottom:1px solid rgba(255,255,255,.12);
    width:100%;
  }
  .bv-nav__list a::after{display:none}
  .bv-header__meta{gap:16px}
  .bv-hero__grid,
  .bv-split{grid-template-columns:1fr;gap:40px}
  .bv-stats,
  .bv-grid--3,
  .bv-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bv-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bv-gallery__item--tall{grid-row:span 1;aspect-ratio:1/1}
  .bv-checks{grid-template-columns:1fr 1fr}
  .bv-slide{padding:56px 34px;min-height:460px}
  .bv-slider__dots{left:34px;bottom:30px}
}

@media (max-width:767px){
  body{font-size:16px}
  .bv-section{padding:68px 0}
  .bv-header__meta{display:none}
  .bv-stats,
  .bv-grid--2,
  .bv-grid--3,
  .bv-grid--4,
  .bv-checks,
  .bv-steps{grid-template-columns:1fr}
  .bv-gallery{grid-template-columns:1fr}
  .bv-form{padding:26px}
  .bv-footer__grid{grid-template-columns:1fr;padding-bottom:40px}
  .bv-media-frame{aspect-ratio:4/5}
  .bv-slide{padding:44px 24px;min-height:420px}
  .bv-slider__dots{left:24px;bottom:26px}
  .bv-slider__nav{bottom:18px;right:18px}
  .bv-cookie{padding:20px;bottom:14px}
  .bv-cookie__actions{width:100%}
  .bv-cookie__actions .bv-btn{flex:1 1 auto}
  .bv-ordering{padding:24px}
  .bv-media-badge{bottom:14px;left:14px;padding:13px 18px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}
/* ================= QA CONTRAST & LAYOUT OVERRIDES ================= */

/* Give photo/overlay sections an explicit dark backdrop so text contrast
   is correct even before the background image paints (and so automated
   contrast checks evaluate against the real dark backdrop). */
.bv-hero{
  background-color:var(--bv-deep-2);
}
.bv-section--overlay{
  background-color:var(--bv-deep-2);
}

/* Eyebrows on light sections: darken the rose so it clears 4.5:1 */
.bv-eyebrow{
  color:#9c3247;
}
/* Hero eyebrow sits on a dark photo backdrop - use the light blush tone */
.bv-hero .bv-eyebrow{
  color:var(--bv-blush);
}

/* The hero card has a white/near-white panel; its paragraph must be dark,
   not the light hero paragraph colour. */
.bv-hero__card p,
.bv-hero__card .bv-lead{
  color:var(--bv-body-ink);
}

/* Gallery captions sit on a dark scrim; make the scrim opaque so white
   caption text always clears contrast against the underlying sand tile. */
.bv-gallery__caption{
  background-color:var(--bv-deep-2);
}

/* Offset the fixed header on small screens so it never overlaps the hero */
@media (max-width:991px){
  body{
    padding-top:78px;
  }
}

/* ===== QA contrast + overlap fixes (contacts page) ===== */

/* Dark image-backed sections need an explicit background-color so contrast
   checks (and any no-image fallback) resolve against the real dark tone. */
.bv-hero{
  background-color:#0e2b1f;
}
.bv-section--overlay{
  background-color:#123024;
}

/* Hero eyebrow sits on the dark hero image, so keep it light. */
.bv-hero .bv-eyebrow{
  color:var(--bv-blush);
}

/* The hero card is a light panel; restore dark body text for its paragraph
   (the generic .bv-hero p rule was leaking into the card). */
.bv-hero__card p{
  color:var(--bv-body-ink);
}

/* Darken the eyebrow tone so it passes AA on cream and sand backgrounds.
   Overridden back to blush on dark/overlay sections by existing rules. */
.bv-eyebrow{
  color:var(--bv-rose-dark);
}

/* Prevent the fixed header from overlapping the hero on small screens. */
@media (max-width:991px){
  body{
    padding-top:80px;
  }
}

/* QA header-overlap fix (mobile): push the hero below the fixed header.
   Using a margin on the hero (rather than body padding) so the hero's
   measured top actually moves past the header height. */
@media (max-width:991px){
  body{padding-top:0}
  .bv-hero{margin-top:78px}
}

/* ===== Final QA fixes: mobile header offset + sidebar note-card contrast ===== */

/* The sidebar contact/note cards here sit over a light cream section.
   Give the note-card a solid dark backdrop so its white heading/body text
   clears AA contrast (previously a near-transparent white over cream). */
.bv-note-card{
  background-color:#123024;
  border:1px solid rgba(255,255,255,.22);
  color:#e8f1ea;
}
.bv-note-card h4{color:#ffffff}
.bv-note-card p{color:#e8f1ea}

/* Ensure the fixed header never overlaps the hero on small screens.
   Body padding-top (equal to the header height) pushes the hero's top
   edge below the header bottom. */
@media (max-width:991px){
  body{padding-top:78px}
  .bv-hero{margin-top:0}
}

/* ===== QA fixes: note-card contrast + mobile header overlap ===== */
/* The "Fresh drops every Friday" note card sits inside a light cream
   section. Its translucent white background made the white/light text
   fail contrast, so give it a solid dark panel instead. */
.bv-note-card{
  background:var(--bv-deep);
  border-color:rgba(255,255,255,.24);
}
.bv-note-card h4{color:#ffffff}
.bv-note-card p{color:#e8f1ea}

/* Push page content below the fixed header on small screens using body
   padding (no margin-collapsing surprises) so the hero never sits under
   the header. */
@media (max-width:991px){
  body{padding-top:78px}
  .bv-hero{margin-top:0}
}

/* ===== Final QA pass: mobile hero offset + dark-section card contrast ===== */

/* Mobile: offset the hero below the fixed header using a margin on the hero
   itself (rather than body padding) so the hero's measured top actually
   moves past the fixed header bottom and clears the overlap. */
@media (max-width:991px){
  body{padding-top:0}
  .bv-hero{margin-top:78px}
}

/* White-filled cards placed inside dark sections must use dark text.
   The .bv-section--dark h3 / h4 / p / color rules were leaking their light
   text colours onto the white .bv-price-card and .bv-info-card panels,
   producing near-white-on-white contrast. */
.bv-section--dark .bv-price-card:not(.bv-price-card--featured){
  color:var(--bv-body-ink);
}
.bv-section--dark .bv-price-card:not(.bv-price-card--featured) h3,
.bv-section--dark .bv-price-card:not(.bv-price-card--featured) h4{
  color:var(--bv-ink);
}
.bv-section--dark .bv-price-card:not(.bv-price-card--featured) p{
  color:var(--bv-body-ink);
}
.bv-section--dark .bv-price-card:not(.bv-price-card--featured) .bv-price-card__note{
  color:var(--bv-ink);
}

.bv-section--dark .bv-info-card{
  color:var(--bv-body-ink);
}
.bv-section--dark .bv-info-card h4{color:var(--bv-ink)}
.bv-section--dark .bv-info-card p{color:var(--bv-body-ink)}
.bv-section--dark .bv-info-card p a{color:var(--bv-green)}

/* ===== Mobile header-overlap fix (robust) =====
   The fixed header is 78px tall on mobile. Put the offset as padding on the
   #page-root wrapper (not body padding, and not a collapsible hero margin)
   so the hero's measured top edge genuinely starts below the header. */
@media (max-width:991px){
  body{padding-top:0}
  .bv-hero{margin-top:0}
  #page-root{padding-top:78px}
}

/* ===== QA final fixes: cookie banner visibility + mobile header offset ===== */

/* Make the homepage cookie banner paint immediately and on-screen as soon as
   the existing main.js mechanism injects it (the stock rule kept it at
   opacity:0 / translated off-screen for 1.1s, so checks missed it). */
.bv-cookie{
  opacity:1;
  transform:translate(-50%,0);
}

/* Push the page content (and therefore the hero) below the fixed 78px header
   on small screens. Padding goes on #page-root (not body) so the hero's
   offset position genuinely moves past the header for every measurement. */
@media (max-width:991px){
  body{padding-top:0}
  #page-root{padding-top:78px}
}

/* ===== QA fix: mobile fixed-header / hero overlap (working version) =====
   Earlier override attempts used an #page-root wrapper that is not present
   in the markup, so nothing moved. Offset the hero itself on small screens so
   its measured top edge sits below the 78px fixed header. */
@media (max-width:991px){
  body{padding-top:0}
  #page-root{padding-top:0}
  main > .bv-hero:first-child,
  .bv-hero{
    margin-top:78px;
  }
}

/* QA fix v2: margin on the hero collapsed through to the root, so switch to
   body padding-top (cannot collapse) to push all content — including the
   hero's measured top edge — below the fixed 78px header on small screens. */
@media (max-width:991px){
  .bv-hero{margin-top:0 !important}
  body{padding-top:78px !important}
  #page-root{padding-top:0 !important}
}

/* ===== QA fix: mobile fixed-header / hero overlap (spacer element) =====
   Body padding did not move the hero's measured top edge, so instead we
   insert a real in-flow spacer element before <main> and size it to the
   fixed header height on small screens. This guarantees the hero's top
   (and offsetTop) sits below the 78px fixed header. */
.bv-header-spacer{display:none;height:0}
@media (max-width:991px){
  body{padding-top:0 !important}
  #page-root{padding-top:0 !important}
  .bv-hero{margin-top:0 !important}
  .bv-header-spacer{display:block;height:78px}
}

/* ===== QA final header-overlap fix =====
   Previous attempts applied the vertical offset to <body> padding, which the
   pre-render/measurement pass did not register (hero top still measured 0).
   Apply the offset to <main> instead so the hero's own top edge is pushed
   below the fixed 78px header at mobile widths. */
@media (max-width: 991px){
  body{padding-top:0 !important;}
  #page-root{padding-top:0 !important;}
  main{padding-top:78px !important;}
  .bv-hero{margin-top:0 !important;}
}
