body.cv-next-template {
  margin: 0 !important;
  background: #ffffff;
  color: #2f2b2d;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body.cv-next-template #wpadminbar { z-index: 999999; }
.cv-next, .cv-next * { box-sizing: border-box; }
.cv-next { --rose:#B76E79; --rose-dark:#9E5E68; --lav:#EDE7F6; --lav-deep:#8D7ACB; --ink:#2F2B2D; --muted:#6E6669; --paper:#FCFAF8; --line:#E7DEDF; position:relative; width:100%; overflow-x:hidden; background:#fff; color:var(--ink); }
.cv-next a { color:inherit; text-decoration:none; }
.cv-next img { max-width:100%; display:block; }
.cv-next h1,.cv-next h2,.cv-next h3,.cv-next p { margin-top:0; }
.cv-next h1,.cv-next h2 { font-family: Georgia, "Times New Roman", serif; font-weight:500; letter-spacing:-0.02em; color:var(--ink); }
.cv-next-wrap { width:min(1180px, calc(100% - 40px)); margin:0 auto; }
.cv-next-section { padding:86px 0; }
.cv-next-eyebrow { font-size:12px; font-weight:800; letter-spacing:.18em; color:var(--rose); margin-bottom:14px; }
.cv-next-eyebrow-light { color:#fff; opacity:.9; }
.cv-next-btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px; border-radius:6px; font-weight:700; letter-spacing:.05em; font-size:13px; transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; }
.cv-next-btn:hover { transform:translateY(-2px); }
.cv-next-btn-primary { background:var(--rose); color:#fff !important; box-shadow:0 8px 18px rgba(183,110,121,.18); }
.cv-next-btn-primary:hover { background:var(--rose-dark); box-shadow:0 12px 24px rgba(183,110,121,.24); }
.cv-next-btn-outline { border:1px solid var(--rose); color:var(--rose) !important; background:#fff; }
.cv-next-btn-outline:hover { background:#f9f1f3; }
.cv-next-btn-light { background:#fff; color:var(--ink) !important; }
.cv-next-btn-light:hover { background:#f7eff2; }

/* Header */
.cv-next-header { position:relative; z-index:10000; background:linear-gradient(180deg, #fcf7fa 0%, #f8eff5 100%); border-bottom:1px solid rgba(183,110,121,.18); box-shadow:0 4px 18px rgba(183,110,121,.08); }
.cv-next-header-inner { width:min(1280px, calc(100% - 34px)); min-height:126px; margin:0 auto; display:grid; grid-template-columns:220px minmax(0,1fr) auto; align-items:center; gap:28px; }
.cv-next-logo { display:flex; align-items:center; justify-content:flex-start; }
.cv-next-logo img { width:150px; height:110px; object-fit:contain; }
.cv-next-nav { min-width:0; }
.cv-next-menu { list-style:none; margin:0; padding:0; display:flex; align-items:center; justify-content:center; gap:20px; }
.cv-next-menu > li { position:relative; margin:0; padding:0; }
.cv-next-menu > li > a { display:block; padding:42px 0; font-size:17px; font-weight:600; color:#262326; transition:color .2s ease; white-space:nowrap; }
.cv-next-menu > li:hover > a,.cv-next-menu > li:focus-within > a,.cv-next-menu > li.current-menu-item > a { color:var(--rose); }
.cv-next-menu .menu-item-has-children > a::after { content:"⌄"; margin-left:5px; font-size:11px; color:#9b9194; }
.cv-next-menu .sub-menu { position:absolute; z-index:10020; top:calc(100% - 24px); left:50%; transform:translate(-50%,8px); min-width:245px; max-width:320px; list-style:none; margin:0; padding:4px 0; background:var(--lav); border-top:3px solid #C98F8F; box-shadow:0 14px 36px rgba(43,35,39,.14); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease, transform .18s ease, visibility .18s ease; }
.cv-next-menu li:hover > .sub-menu,.cv-next-menu li:focus-within > .sub-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.cv-next-menu .sub-menu li { margin:0; padding:0; width:100%; position:relative; }
.cv-next-menu .sub-menu a { display:block; width:100%; padding:6px 9px; font-size:16px; font-weight:600; line-height:1.3; color:#333 !important; white-space:nowrap; }
.cv-next-menu .sub-menu a:hover,.cv-next-menu .sub-menu a:focus { background:#DDD2EE; }
.cv-next-menu .sub-menu .sub-menu { left:100%; top:0; transform:translate(8px,0); }
.cv-next-menu .sub-menu li:hover > .sub-menu,.cv-next-menu .sub-menu li:focus-within > .sub-menu { transform:translate(0,0); }
.cv-next-actions { display:flex; align-items:center; gap:12px; justify-content:flex-end; }
.cv-next-pay { min-width:138px; height:46px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 16px; background:var(--rose); color:#fff !important; border-radius:6px; font-family:"Arial Narrow",Arial,sans-serif; font-weight:800; letter-spacing:.04em; transition:all .22s ease; box-shadow:0 6px 14px rgba(0,0,0,.08); }
.cv-next-pay:hover { background:var(--rose-dark); transform:translateY(-2px); box-shadow:0 9px 20px rgba(0,0,0,.14); }
.cv-next-lock { font-size:14px; filter:grayscale(1) brightness(10); }
.cv-next-cart { width:42px; height:42px; border:1px solid #e7dfe1; border-radius:50%; display:grid; place-items:center; position:relative; background:#fff; transition:all .2s ease; }
.cv-next-cart:hover { border-color:var(--rose); transform:translateY(-1px); }
.cv-next-cart svg { width:19px; height:19px; fill:#393336; }
.cv-next-cart-count { position:absolute; right:-4px; top:-6px; min-width:20px; height:20px; padding:0 5px; display:grid; place-items:center; border-radius:999px; background:var(--rose); color:#fff; font-size:11px; font-weight:800; border:2px solid #fff; }
.cv-next-nav-toggle { display:none; }
.cv-next-subtoggle { display:none; }

/* Hero */
.cv-next-hero { position:relative; min-height:570px; background:#222; overflow:hidden; }
.cv-next-slides { min-height:570px; position:relative; }
.cv-next-slide { position:absolute; inset:0; background-image:var(--cv-slide-image); background-position:center; background-size:cover; opacity:0; visibility:hidden; transition:opacity .55s ease, visibility .55s ease; }
.cv-next-slide.is-active { opacity:1; visibility:visible; }
.cv-next-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(22,16,20,.66) 0%, rgba(22,16,20,.45) 44%, rgba(22,16,20,.12) 72%, rgba(22,16,20,.08) 100%); }
.cv-next-hero-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); min-height:570px; margin:0 auto; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; color:#fff; padding-right:48%; }
.cv-next-hero-content h1 { color:#fff; font-size:clamp(48px,6vw,78px); line-height:.98; margin-bottom:18px; text-shadow:0 2px 18px rgba(0,0,0,.26); }
.cv-next-hero-content p { max-width:620px; font-size:18px; line-height:1.7; margin-bottom:26px; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.25); }
.cv-next-slider-arrow { position:absolute; z-index:5; top:50%; transform:translateY(-50%); width:44px; height:44px; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(15,12,14,.28); color:#fff; font-size:30px; line-height:1; cursor:pointer; backdrop-filter:blur(5px); }
.cv-next-slider-arrow:hover { background:rgba(15,12,14,.55); }
.cv-next-slider-prev { left:24px; }
.cv-next-slider-next { right:24px; }
.cv-next-slider-dots { display:flex; align-items:center; justify-content:center; gap:8px; }
.cv-next-hero > .cv-next-slider-dots { position:absolute; z-index:5; bottom:22px; left:50%; transform:translateX(-50%); }
.cv-next-slider-dots button { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.48); cursor:pointer; transition:all .2s ease; }
.cv-next-slider-dots button.is-active { width:24px; border-radius:99px; background:#fff; }

/* Size cards */
.cv-next-size-section { background:#fff; padding-top:100px; padding-bottom:95px; }
.cv-next-section-heading { text-align:center; max-width:760px; margin:0 auto 52px; }
.cv-next-section-heading h2 { font-size:clamp(36px,4vw,52px); margin-bottom:14px; }
.cv-next-section-heading p { color:var(--muted); font-size:17px; line-height:1.65; margin-bottom:0; }
.cv-next-size-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; align-items:start; padding-top:32px; }
.cv-next-size-card { text-align:center; }
.cv-next-size-card.is-featured { transform:translateY(-32px); }
.cv-next-size-image { display:block; background:#f7f4f3; overflow:hidden; aspect-ratio:1/1; box-shadow:0 14px 35px rgba(56,40,47,.08); }
.cv-next-size-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.cv-next-size-image:hover img { transform:scale(1.035); }
.cv-next-size-label { font-family:Georgia,"Times New Roman",serif; font-size:28px; margin:18px 0 14px; }

/* Testimonials */
.cv-next-testimonials { position:relative; background:#F8EFF2; padding:76px 0 70px; text-align:center; overflow:hidden; }
.cv-next-testimonials h2 { font-size:clamp(34px,4vw,50px); margin-bottom:34px; }
.cv-next-testimonial-stage { position:relative; min-height:205px; max-width:930px; margin:0 auto; }
.cv-next-testimonial { position:absolute; inset:0; margin:0; display:flex; flex-direction:column; justify-content:center; opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease; }
.cv-next-testimonial.is-active { opacity:1; visibility:visible; }
.cv-next-testimonial p { font-family:Georgia,"Times New Roman",serif; font-size:clamp(20px,1.65vw,24px); line-height:1.5; color:#594b50; margin:0; }
.cv-next-quote-mark { font-family:Georgia,serif; font-size:80px; line-height:.5; color:var(--rose); opacity:.35; margin-bottom:16px; }
.cv-next-testimonial-controls { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:24px; }
.cv-next-testimonial-controls .cv-next-slider-prev,.cv-next-testimonial-controls .cv-next-slider-next { position:static; transform:none; width:34px; height:34px; border:1px solid #cdb9bf; background:#fff; color:var(--rose); font-size:24px; }
.cv-next-testimonial-controls .cv-next-slider-dots button { background:#d4c1c6; }
.cv-next-testimonial-controls .cv-next-slider-dots button.is-active { background:var(--rose); }
.cv-next-text-link { display:inline-block; margin-top:28px; color:var(--rose) !important; font-size:13px; font-weight:800; letter-spacing:.06em; }

/* Local */
.cv-next-local-section { background:var(--paper); }
.cv-next-local-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.cv-next-local-grid h2 { font-size:clamp(40px,5vw,62px); line-height:1.05; margin-bottom:0; }
.cv-next-local-copy p { font-size:18px; line-height:1.75; color:#544d50; }
.cv-next-button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

/* Weddings */
.cv-next-wedding-section { background:#fff; }
.cv-next-wedding-grid { display:grid; grid-template-columns:1.1fr .9fr; min-height:440px; background:#fff; box-shadow:0 20px 55px rgba(53,39,45,.09); }
.cv-next-wedding-image { min-height:440px; overflow:hidden; }
.cv-next-wedding-image img { width:100%; height:100%; object-fit:cover; }
.cv-next-wedding-copy { padding:64px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.cv-next-wedding-copy h2 { font-size:clamp(38px,4vw,54px); line-height:1.08; margin-bottom:18px; }
.cv-next-wedding-copy p { font-size:18px; line-height:1.7; color:var(--muted); margin-bottom:26px; }

/* Footer */
.cv-next-footer { background:#30282c; color:#f8f3f5; padding-top:58px; }
.cv-next-footer a { color:#f8f3f5 !important; }
.cv-next-footer-grid { display:grid; grid-template-columns:1.1fr .9fr 1.4fr 1fr; gap:42px; padding-bottom:46px; font-size:14px; line-height:1.7; }
.cv-next-footer-title { font-family:Georgia,"Times New Roman",serif; font-size:22px; margin-bottom:10px; }
.cv-next-footer-heading { font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:12px; color:#ddb6bf; margin-bottom:10px; }
.cv-next-footer-note { margin-top:8px; color:#d6cdd0; }
.cv-next-footer p { margin:0; color:#ded5d8; }
.cv-next-footer ul { list-style:none; padding:0; margin:0; }
.cv-next-footer li { margin:0 0 4px; }
.cv-next-footer-bottom { border-top:1px solid rgba(255,255,255,.12); padding:18px 0; font-size:12px; color:#bdb2b6; }

/* Password */
.cv-next-password-shell { min-height:100vh; display:grid; place-items:center; padding:30px; background:linear-gradient(135deg,#f7eff2,#ede7f6); }
.cv-next-password-card { width:min(520px,100%); background:#fff; padding:40px; border-radius:14px; box-shadow:0 20px 60px rgba(48,40,44,.12); }
.cv-next-password-card h1 { font-size:38px; margin-bottom:12px; }
.cv-next-password-card p { color:#655d61; line-height:1.6; }
.cv-next-password-card input[type=password] { width:100%; height:46px; border:1px solid #d9ced2; border-radius:6px; padding:0 12px; margin:8px 0 12px; }
.cv-next-password-card input[type=submit] { height:44px; border:0; border-radius:6px; padding:0 20px; background:var(--rose); color:#fff; font-weight:800; cursor:pointer; }

@media (max-width:1100px) {
  .cv-next-header-inner { grid-template-columns:170px minmax(0,1fr) auto; gap:18px; }
  .cv-next-logo img { width:135px; height:100px; }
  .cv-next-menu { gap:16px; }
  .cv-next-menu > li > a { font-size:16px; }
  .cv-next-pay { min-width:124px; }
}

@media (max-width:920px) {
  .cv-next-header-inner { min-height:92px; grid-template-columns:130px 1fr auto; }
  .cv-next-logo img { width:112px; height:78px; }
  .cv-next-nav-toggle { display:flex; width:42px; height:42px; border:0; background:transparent; flex-direction:column; justify-content:center; gap:5px; justify-self:end; cursor:pointer; }
  .cv-next-nav-icon { display:flex; flex-direction:column; justify-content:center; gap:5px; }
  .cv-next-nav-icon span { display:block; width:24px; height:2px; background:#2f2b2d; }
  .cv-next-nav-label { display:inline-block; font-size:16px; font-weight:700; line-height:1; color:#2f2b2d; }
  .cv-next-nav { display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-top:1px solid #eee; box-shadow:0 18px 40px rgba(0,0,0,.12); max-height:calc(100vh - 100px); overflow:auto; }
  .cv-next-nav.is-open { display:block; }
  .cv-next-menu { display:block; padding:12px 20px 20px; }
  .cv-next-menu > li > a { padding:13px 0; font-size:18px; border-bottom:1px solid #f0eaec; }
  .cv-next-menu .menu-item-has-children > a::after { display:none; }
  .cv-next-menu .sub-menu { position:static; transform:none !important; min-width:0; max-width:none; width:100%; box-shadow:none; border-top:0; background:#f8f4f6; opacity:1; visibility:visible; pointer-events:auto; display:none; margin:4px 0 10px; }
  .cv-next-menu li.is-submenu-open > .sub-menu { display:block; }
  .cv-next-menu .sub-menu a { white-space:normal; padding:10px 12px; font-size:16px; }
  .cv-next-subtoggle { display:block; position:absolute; top:8px; right:0; width:34px; height:34px; border:0; background:transparent; color:var(--rose); font-size:20px; cursor:pointer; }
  .cv-next-menu > li { padding-right:38px; }
  .cv-next-actions { grid-column:3; grid-row:1; }
  .cv-next-pay { display:none; }
  .cv-next-hero,.cv-next-slides { min-height:520px; }
  .cv-next-hero-content { min-height:520px; padding-right:25%; }
  .cv-next-size-grid { gap:18px; }
  .cv-next-local-grid { grid-template-columns:1fr; gap:28px; }
  .cv-next-wedding-grid { grid-template-columns:1fr; }
  .cv-next-wedding-copy { padding:46px; }
  .cv-next-footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:680px) {
  .cv-next-wrap { width:min(100% - 28px,1180px); }
  .cv-next-section { padding:62px 0; }
  .cv-next-header-inner { width:calc(100% - 22px); min-height:84px; grid-template-columns:105px 1fr auto; gap:8px; }
  .cv-next-logo img { width:96px; height:70px; }
  .cv-next-cart { width:38px; height:38px; }
  .cv-next-hero,.cv-next-slides { min-height:500px; }
  .cv-next-hero-shade { background:linear-gradient(90deg,rgba(22,16,20,.72),rgba(22,16,20,.45)); }
  .cv-next-hero-content { width:calc(100% - 32px); min-height:500px; padding-right:0; padding-bottom:32px; }
  .cv-next-hero-content h1 { font-size:44px; }
  .cv-next-hero-content p { font-size:16px; line-height:1.6; }
  .cv-next-slider-arrow { width:36px; height:36px; font-size:24px; }
  .cv-next-slider-prev { left:10px; }
  .cv-next-slider-next { right:10px; }
  .cv-next-size-section { padding-top:68px; }
  .cv-next-size-grid { grid-template-columns:1fr; gap:36px; padding-top:0; }
  .cv-next-size-card.is-featured { transform:none; }
  .cv-next-size-image { max-width:440px; margin:0 auto; }
  .cv-next-testimonial-stage { min-height:320px; }
  .cv-next-testimonial p { font-size:20px; }
  .cv-next-button-row { flex-direction:column; align-items:stretch; }
  .cv-next-btn { width:100%; }
  .cv-next-wedding-image { min-height:320px; }
  .cv-next-wedding-copy { padding:34px 24px 40px; }
  .cv-next-footer-grid { grid-template-columns:1fr; gap:28px; }
}


/* =========================================================
   v0.2.0 BRIGHT BOUTIQUE REFRESH
   Brighter palette, stronger depth, more visual personality.
   Scoped entirely to CV Next pages.
   ========================================================= */
.cv-next {
  --rose:#C97888;
  --rose-dark:#B75F72;
  --lav:#F2E8FA;
  --lav-deep:#A88AC8;
  --ink:#3B2D39;
  --muted:#756873;
  --paper:#FFFAFC;
  --line:#EADDE7;
  --blush:#FFF0F5;
  --pearl:#FFFDFE;
  background:#fffdfd;
}
.cv-next h1,.cv-next h2 { color:#402F3E; }
.cv-next-btn { min-height:48px; border-radius:999px; padding:0 25px; }
.cv-next-btn-primary,
.cv-next-pay,
.cv-next-btn-light {
  background:linear-gradient(135deg,#C97888 0%,#D99AA3 100%);
  color:#fff !important;
  box-shadow:0 10px 24px rgba(190,103,122,.24);
}
.cv-next-btn-primary:hover,
.cv-next-pay:hover,
.cv-next-btn-light:hover {
  background:linear-gradient(135deg,#B75F72 0%,#CC8190 100%);
  color:#fff !important;
  box-shadow:0 14px 30px rgba(183,95,114,.30);
}
.cv-next-btn-outline { border:2px solid #C97888; color:#B75F72 !important; background:rgba(255,255,255,.82); }
.cv-next-btn-outline:hover { background:#FFF0F5; }

/* brighter header */
.cv-next-header {
  background:rgba(255,255,255,.98);
  border-bottom:0;
  box-shadow:0 6px 28px rgba(91,58,80,.09);
}
.cv-next-header::after {
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:3px;
  background:linear-gradient(90deg,#F0DDEB 0%,#C97888 42%,#BCA1D6 72%,#F0DDEB 100%);
}
.cv-next-menu > li > a { color:#3D323B; }
.cv-next-menu .sub-menu {
  background:#F5EDFA;
  border-top-color:#C97888;
  box-shadow:0 18px 42px rgba(87,55,78,.17);
}
.cv-next-menu .sub-menu a:hover,.cv-next-menu .sub-menu a:focus { background:#E8DAF4; }
.cv-next-cart { border-color:#E8D8E3; box-shadow:0 5px 14px rgba(87,55,78,.06); }

/* hero: bright photo-first presentation with translucent editorial card */
.cv-next-hero,.cv-next-slides { min-height:610px; background:#F7EDF6; }
.cv-next-slide { transition:opacity .42s ease, visibility .42s ease; }
.cv-next-hero-shade {
  background:linear-gradient(90deg,
    rgba(255,250,253,.62) 0%,
    rgba(255,250,253,.32) 32%,
    rgba(255,250,253,.05) 62%,
    rgba(255,255,255,0) 100%);
}
.cv-next-hero-content {
  position:absolute;
  top:50%;
  left:max(58px,calc((100vw - 1180px)/2));
  transform:translateY(-50%);
  width:min(540px,calc(100% - 120px));
  min-height:0;
  margin:0;
  padding:44px 48px 46px;
  display:block;
  color:var(--ink);
  background:rgba(255,255,255,.28);
  border:1px solid rgba(201,120,136,.24);
  border-radius:28px;
  box-shadow:0 24px 70px rgba(77,49,68,.20);
  backdrop-filter:blur(9px);
}
.cv-next-hero .cv-next-eyebrow-light { color:#B75F72; opacity:1; }
.cv-next-hero-content h1 {
  color:#493248;
  font-size:clamp(50px,5.2vw,74px);
  line-height:.98;
  margin-bottom:18px;
  text-shadow:none;
}
.cv-next-hero-content p {
  max-width:none;
  font-size:18px;
  line-height:1.65;
  margin-bottom:26px;
  color:#5E505B;
  text-shadow:none;
}
.cv-next-slider-arrow {
  border:1px solid rgba(255,255,255,.85);
  background:rgba(201,120,136,.82);
  color:#fff;
  box-shadow:0 8px 22px rgba(95,57,78,.18);
  backdrop-filter:blur(6px);
}
.cv-next-slider-arrow:hover { background:#B75F72; }
.cv-next-hero > .cv-next-slider-dots { bottom:24px; }
.cv-next-hero > .cv-next-slider-dots button { background:rgba(255,255,255,.86); box-shadow:0 1px 8px rgba(0,0,0,.18); }
.cv-next-hero > .cv-next-slider-dots button.is-active { background:#C97888; }

/* arrangements: more dimensional, brighter, price-led */
.cv-next-size-section {
  position:relative;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFF8FB 100%);
  padding-top:104px;
  padding-bottom:106px;
}
.cv-next-size-section::before {
  content:"";
  position:absolute;
  width:260px; height:260px;
  border-radius:50%;
  right:-120px; top:30px;
  background:radial-gradient(circle,#F0E2F8 0%,rgba(240,226,248,0) 70%);
  pointer-events:none;
}
.cv-next-section-heading h2 { color:#483347; }
.cv-next-size-grid { gap:34px; }
.cv-next-size-card {
  position:relative;
  padding:14px 14px 26px;
  background:#fff;
  border:1px solid #F0E2E9;
  border-radius:26px;
  box-shadow:0 18px 45px rgba(92,60,80,.11);
  transition:transform .28s ease,box-shadow .28s ease;
}
.cv-next-size-card:hover { transform:translateY(-7px); box-shadow:0 24px 52px rgba(92,60,80,.16); }
.cv-next-size-card.is-featured {
  transform:translateY(-40px);
  border:2px solid #D7BBE8;
  box-shadow:0 26px 60px rgba(138,101,156,.20);
}
.cv-next-size-card.is-featured:hover { transform:translateY(-47px); }
.cv-next-size-image { border-radius:18px; background:#FFF7FA; box-shadow:none; }
.cv-next-size-label {
  font-size:31px;
  font-weight:600;
  color:#B75F72;
  margin:20px 0 16px;
  letter-spacing:-.02em;
}
.cv-next-size-card .cv-next-btn { min-width:150px; }

/* testimonials: bright gradient with a real card and automatic motion */
.cv-next-testimonials {
  background:linear-gradient(135deg,#FFF0F5 0%,#F1E7FA 52%,#FFF9FC 100%);
  padding:86px 0 82px;
}
.cv-next-testimonials h2 { color:#493248; }
.cv-next-testimonial-stage {
  min-height:250px;
  max-width:980px;
  padding:34px 62px 38px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(201,120,136,.18);
  border-radius:28px;
  box-shadow:0 20px 55px rgba(93,59,80,.13);
  backdrop-filter:blur(8px);
}
.cv-next-testimonial { inset:34px 62px 38px; transition:opacity .34s ease, visibility .34s ease; }
.cv-next-testimonial p { color:#594653; }
.cv-next-quote-mark { color:#C97888; opacity:.55; }
.cv-next-testimonial-controls .cv-next-slider-prev,.cv-next-testimonial-controls .cv-next-slider-next {
  border-color:#DABAC6;
  background:#fff;
  color:#B75F72;
  box-shadow:0 5px 14px rgba(93,59,80,.08);
}
.cv-next-testimonial-controls .cv-next-slider-dots button { background:#D7C2E5; }
.cv-next-testimonial-controls .cv-next-slider-dots button.is-active { background:#C97888; }

/* local section: bright layered panel */
.cv-next-local-section {
  background:linear-gradient(135deg,#F2E8FA 0%,#FFF2F6 50%,#FFFFFF 100%);
  padding:96px 0;
}
.cv-next-local-grid {
  gap:66px;
  padding:58px 62px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(180,143,199,.24);
  border-radius:30px;
  box-shadow:0 22px 60px rgba(86,56,78,.10);
}
.cv-next-local-grid h2 { color:#493248; }
.cv-next-local-copy p { color:#5C4F59; }

/* weddings: softer, more editorial and less heavy */
.cv-next-wedding-section { background:linear-gradient(180deg,#FFFFFF 0%,#FFF7FA 100%); }
.cv-next-wedding-grid {
  overflow:hidden;
  border-radius:30px;
  border:1px solid #EFE2E9;
  box-shadow:0 24px 62px rgba(83,55,72,.13);
}
.cv-next-wedding-copy {
  background:linear-gradient(145deg,#FFFDFE 0%,#F5ECFA 100%);
}
.cv-next-wedding-copy h2 { color:#493248; }

/* footer: light instead of dark */
.cv-next-footer {
  background:#F2E8F7;
  color:#463A47;
  padding-top:58px;
  border-top:4px solid #C97888;
}
.cv-next-footer a { color:#5A4058 !important; }
.cv-next-footer-title { color:#493248; }
.cv-next-footer-heading { color:#B75F72; }
.cv-next-footer-note,.cv-next-footer p { color:#665A65; }
.cv-next-footer-bottom {
  border-top:1px solid rgba(90,64,88,.12);
  background:#E9DDF2;
  color:#6B5B6B;
}

@media (max-width:920px) {
  .cv-next-hero,.cv-next-slides { min-height:570px; }
  .cv-next-hero-content {
    left:30px;
    width:min(520px,calc(100% - 60px));
    padding:38px 40px;
  }
  .cv-next-local-grid { padding:44px; }
}

@media (max-width:680px) {
  .cv-next-hero,.cv-next-slides { min-height:590px; }
  .cv-next-hero-shade {
    background:linear-gradient(180deg,rgba(255,255,255,.04) 0%,rgba(255,248,252,.20) 48%,rgba(255,248,252,.58) 100%);
  }
  .cv-next-hero-content {
    top:auto;
    bottom:34px;
    left:16px;
    right:16px;
    width:auto;
    transform:none;
    padding:28px 24px 30px;
    border-radius:22px;
    background:rgba(255,255,255,.30);
  }
  .cv-next-hero-content h1 { font-size:42px; }
  .cv-next-hero-content p { font-size:16px; }
  .cv-next-size-card.is-featured,
  .cv-next-size-card.is-featured:hover { transform:none; }
  .cv-next-testimonial-stage { min-height:365px; padding:28px 24px 32px; }
  .cv-next-testimonial { inset:28px 24px 32px; }
  .cv-next-local-grid { padding:34px 24px; border-radius:22px; }
}


/* =========================================================
   v0.3.0 TOP-OF-PAGE REDESIGN
   Compact sticky navigation, independent oversized logo,
   shorter photo-first hero, no hero text card.
   ========================================================= */

/* Floating logo: large at page load, scrolls away with the document. */
.cv-next-logo-float {
  position:absolute;
  z-index:10040;
  top:4px;
  left:max(22px,calc((100vw - 1320px)/2));
  width:205px;
  height:168px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  pointer-events:auto;
}
.cv-next-logo-float img {
  width:205px;
  height:168px;
  object-fit:contain;
  filter:
    drop-shadow(1px 0 0 rgba(239,239,239,.68))
    drop-shadow(-1px 0 0 rgba(239,239,239,.68))
    drop-shadow(0 1px 0 rgba(239,239,239,.68))
    drop-shadow(0 -1px 0 rgba(239,239,239,.68))
    drop-shadow(0 0 1px rgba(239,239,239,.22))
    drop-shadow(0 4px 8px rgba(48,28,42,.24));
}

/* Compact bar remains when scrolling, but logo does not. */
.cv-next-header {
  position:sticky;
  top:0;
  z-index:10020;
  background:rgba(255,249,252,.97);
  border-bottom:1px solid rgba(183,110,121,.16);
  box-shadow:0 3px 16px rgba(76,53,68,.08);
  backdrop-filter:blur(10px);
}
body.admin-bar .cv-next-header { top:32px; }

.cv-next-header::after {
  height:2px;
  background:linear-gradient(90deg,#efdbe5 0%,#c97888 52%,#eadff4 100%);
}
.cv-next-header-inner {
  width:min(1280px,calc(100% - 36px));
  min-height:76px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  padding-left:205px;
  transition:padding-left .24s ease;
}
.cv-next-header.is-scrolled .cv-next-header-inner { padding-left:0; }

.cv-next-nav { min-width:0; }
.cv-next-menu {
  justify-content:center;
  gap:22px;
}
.cv-next-menu > li > a {
  padding:26px 0;
  font-size:17px;
  line-height:1.2;
}
.cv-next-menu .sub-menu { top:calc(100% - 8px); }
.cv-next-actions { grid-column:2; }
.cv-next-pay { height:44px; min-width:132px; }
.cv-next-cart { width:40px; height:40px; }

/* Hero: shorter and photo-forward. Text sits directly over the image. */
.cv-next-hero,
.cv-next-slides {
  min-height:430px;
  height:430px;
  background:#eee6eb;
}
.cv-next-slide { height:430px; }
.cv-next-hero-shade {
  background:linear-gradient(90deg,
    rgba(26,17,23,.63) 0%,
    rgba(26,17,23,.43) 38%,
    rgba(26,17,23,.13) 68%,
    rgba(26,17,23,.04) 100%);
}
.cv-next-hero-content {
  position:relative;
  top:auto;
  left:auto;
  transform:none;
  width:min(1180px,calc(100% - 56px));
  min-height:430px;
  margin:0 auto;
  padding:0 49% 0 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  color:#fff;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
}
.cv-next-hero .cv-next-eyebrow-light {
  color:#fff;
  opacity:.94;
  text-shadow:0 2px 12px rgba(0,0,0,.28);
}
.cv-next-hero-content h1 {
  color:#fff;
  font-size:clamp(42px,4.7vw,64px);
  line-height:1;
  margin-bottom:14px;
  text-shadow:0 3px 18px rgba(0,0,0,.38);
}
.cv-next-hero-content p {
  max-width:570px;
  font-size:17px;
  line-height:1.55;
  margin-bottom:22px;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.42);
}
.cv-next-hero-content .cv-next-btn-light {
  background:#fff;
  color:#9e5e68 !important;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}
.cv-next-hero-content .cv-next-btn-light:hover {
  background:#f8edf1;
  color:#8f5360 !important;
}
.cv-next-hero > .cv-next-slider-dots { bottom:14px; }

/* Arrangement labels are sizes again, not prices. */
.cv-next-size-label {
  color:#493248;
  font-size:29px;
}

@media (max-width:1100px) {
  .cv-next-logo-float { width:175px; height:146px; left:16px; }
  .cv-next-logo-float img { width:175px; height:146px; }
  .cv-next-header-inner { min-height:72px; padding-left:168px; gap:16px; }
  .cv-next-header.is-scrolled .cv-next-header-inner { padding-left:0; }
  .cv-next-menu { gap:15px; }
  .cv-next-menu > li > a { padding:24px 0; font-size:16px; }
  .cv-next-pay { min-width:120px; padding:0 13px; }
}

@media (max-width:920px) {
  .cv-next-logo-float {
    top:3px;
    left:12px;
    width:128px;
    height:110px;
  }
  .cv-next-logo-float img { width:128px; height:110px; }

  .cv-next-header-inner {
    width:calc(100% - 24px);
    min-height:68px;
    grid-template-columns:128px 1fr auto;
    padding-left:0;
    gap:8px;
  }
  .cv-next-nav-toggle {
    display:flex;
    grid-column:2;
    justify-self:end;
  }
  .cv-next-nav {
    position:absolute;
    left:0;
    right:0;
    top:100%;
  }
  .cv-next-actions {
    grid-column:3;
    grid-row:1;
  }
  .cv-next-header.is-scrolled .cv-next-header-inner { padding-left:0; }

  .cv-next-hero,
  .cv-next-slides,
  .cv-next-slide { min-height:420px; height:420px; }
  .cv-next-hero-content {
    width:calc(100% - 52px);
    min-height:420px;
    padding:0 32% 0 0;
  }
}

@media (max-width:680px) {
  body.admin-bar .cv-next-header { top:0; }

  .cv-next-logo-float {
    top:4px;
    left:12px;
    width:94px;
    height:68px;
  }
  .cv-next-logo-float img {
    width:94px;
    height:68px;
    filter:
      drop-shadow(1px 0 0 rgba(239,239,239,.64))
      drop-shadow(-1px 0 0 rgba(239,239,239,.64))
      drop-shadow(0 1px 0 rgba(239,239,239,.64))
      drop-shadow(0 -1px 0 rgba(239,239,239,.64))
      drop-shadow(0 0 1px rgba(239,239,239,.18))
      drop-shadow(0 3px 6px rgba(48,28,42,.20));
  }

  .cv-next-header-inner {
    min-height:76px;
    grid-template-columns:102px 1fr auto;
  }
  .cv-next-cart { width:37px; height:37px; }

  .cv-next-hero,
  .cv-next-slides,
  .cv-next-slide {
    min-height:390px;
    height:390px;
  }
  .cv-next-hero-shade {
    background:linear-gradient(90deg,
      rgba(24,16,21,.64) 0%,
      rgba(24,16,21,.47) 56%,
      rgba(24,16,21,.18) 100%);
  }
  .cv-next-hero-content {
    top:auto;
    bottom:auto;
    left:auto;
    right:auto;
    width:calc(100% - 38px);
    min-height:390px;
    margin:0 auto;
    transform:none;
    padding:48px 38px 34px 0;
    display:flex;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    backdrop-filter:none;
  }
  .cv-next-hero-content h1 { font-size:39px; }
  .cv-next-hero-content p {
    font-size:15px;
    line-height:1.45;
    max-width:88%;
    margin-bottom:18px;
  }
  .cv-next-hero-content .cv-next-btn {
    width:auto;
    min-height:44px;
    padding:0 20px;
  }
  .cv-next-hero .cv-next-slider-arrow { display:none; }
  .cv-next-size-section {
    padding-top:62px;
    padding-bottom:72px;
  }
  .cv-next-section-heading { margin-bottom:36px; }
}


/* v0.3.9: tone down the header field itself, not just the logo outline */
.cv-next-header {
  background: rgba(233,233,233,.98);
  border-bottom: 1px solid rgba(183,110,121,.14);
  box-shadow: 0 3px 14px rgba(58,45,53,.08);
}

/* Slightly darker neutral edge around the floating logo so it does not read as a white halo. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 rgba(220,220,220,.72))
    drop-shadow(-1px 0 0 rgba(220,220,220,.72))
    drop-shadow(0 1px 0 rgba(220,220,220,.72))
    drop-shadow(0 -1px 0 rgba(220,220,220,.72))
    drop-shadow(0 0 1px rgba(220,220,220,.28))
    drop-shadow(0 4px 8px rgba(48,28,42,.22));
}


/* v0.3.10: soften logo treatment, especially the dense center lettering */
.cv-next-logo-float img {
  filter:
    drop-shadow(0 1px 1px rgba(220,220,220,.18))
    drop-shadow(0 4px 7px rgba(48,28,42,.15));
}


/* v0.3.11: keep the wreath clean, but give only the lower logo lettering
   a soft translucent backing so it stays readable over the hero image. */
.cv-next-logo-float {
  isolation:isolate;
}
.cv-next-logo-float::after {
  content:"";
  position:absolute;
  z-index:-1;
  left:18%;
  right:8%;
  bottom:4%;
  height:42%;
  border-radius:50%;
  background:radial-gradient(
    ellipse at center,
    rgba(245,245,245,.72) 0%,
    rgba(245,245,245,.48) 52%,
    rgba(245,245,245,0) 78%
  );
  filter:blur(3px);
  pointer-events:none;
}
.cv-next-logo-float img {
  filter:drop-shadow(0 4px 7px rgba(48,28,42,.12));
}

@media (max-width:920px) {
  .cv-next-logo-float::after {
    left:16%;
    right:6%;
    bottom:2%;
    height:44%;
  }
}


/* v0.3.12: hard 0.5px white edge around the entire floating logo.
   Remove the localized backing glow from v0.3.11. */
.cv-next-logo-float::after {
  content:none !important;
}
.cv-next-logo-float img {
  filter:
    drop-shadow(.5px 0 0 #fff)
    drop-shadow(-.5px 0 0 #fff)
    drop-shadow(0 .5px 0 #fff)
    drop-shadow(0 -.5px 0 #fff)
    drop-shadow(.35px .35px 0 #fff)
    drop-shadow(-.35px .35px 0 #fff)
    drop-shadow(.35px -.35px 0 #fff)
    drop-shadow(-.35px -.35px 0 #fff)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.13: increase the hard white logo edge from ~0.5px to ~1px. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #fff)
    drop-shadow(-1px 0 0 #fff)
    drop-shadow(0 1px 0 #fff)
    drop-shadow(0 -1px 0 #fff)
    drop-shadow(.7px .7px 0 #fff)
    drop-shadow(-.7px .7px 0 #fff)
    drop-shadow(.7px -.7px 0 #fff)
    drop-shadow(-.7px -.7px 0 #fff)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.14: tune hard white logo edge to ~0.75px. */
.cv-next-logo-float img {
  filter:
    drop-shadow(.75px 0 0 #fff)
    drop-shadow(-.75px 0 0 #fff)
    drop-shadow(0 .75px 0 #fff)
    drop-shadow(0 -.75px 0 #fff)
    drop-shadow(.53px .53px 0 #fff)
    drop-shadow(-.53px .53px 0 #fff)
    drop-shadow(.53px -.53px 0 #fff)
    drop-shadow(-.53px -.53px 0 #fff)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.15: tune hard white logo edge to ~0.9px. */
.cv-next-logo-float img {
  filter:
    drop-shadow(.9px 0 0 #fff)
    drop-shadow(-.9px 0 0 #fff)
    drop-shadow(0 .9px 0 #fff)
    drop-shadow(0 -.9px 0 #fff)
    drop-shadow(.64px .64px 0 #fff)
    drop-shadow(-.64px .64px 0 #fff)
    drop-shadow(.64px -.64px 0 #fff)
    drop-shadow(-.64px -.64px 0 #fff)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.16: final logo edge setting at 1px. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #fff)
    drop-shadow(-1px 0 0 #fff)
    drop-shadow(0 1px 0 #fff)
    drop-shadow(0 -1px 0 #fff)
    drop-shadow(.7px .7px 0 #fff)
    drop-shadow(-.7px .7px 0 #fff)
    drop-shadow(.7px -.7px 0 #fff)
    drop-shadow(-.7px -.7px 0 #fff)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.17: keep the 1px outline, change its color to #EAEAEA. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #eaeaea)
    drop-shadow(-1px 0 0 #eaeaea)
    drop-shadow(0 1px 0 #eaeaea)
    drop-shadow(0 -1px 0 #eaeaea)
    drop-shadow(.7px .7px 0 #eaeaea)
    drop-shadow(-.7px .7px 0 #eaeaea)
    drop-shadow(.7px -.7px 0 #eaeaea)
    drop-shadow(-.7px -.7px 0 #eaeaea)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.18: keep the 1px outline, change its color to #DCDCDC. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #dcdcdc)
    drop-shadow(-1px 0 0 #dcdcdc)
    drop-shadow(0 1px 0 #dcdcdc)
    drop-shadow(0 -1px 0 #dcdcdc)
    drop-shadow(.7px .7px 0 #dcdcdc)
    drop-shadow(-.7px .7px 0 #dcdcdc)
    drop-shadow(.7px -.7px 0 #dcdcdc)
    drop-shadow(-.7px -.7px 0 #dcdcdc)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.19: keep the 1px outline, change its color to #CCCCCC. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #cccccc)
    drop-shadow(-1px 0 0 #cccccc)
    drop-shadow(0 1px 0 #cccccc)
    drop-shadow(0 -1px 0 #cccccc)
    drop-shadow(.7px .7px 0 #cccccc)
    drop-shadow(-.7px .7px 0 #cccccc)
    drop-shadow(.7px -.7px 0 #cccccc)
    drop-shadow(-.7px -.7px 0 #cccccc)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.20: match the entire sticky header to the dropdown-menu background. */
.cv-next-header {
  background:#F5EDFA !important;
}


/* v0.3.21: keep the 1px outline, change its color to #A3A3A3. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #a3a3a3)
    drop-shadow(-1px 0 0 #a3a3a3)
    drop-shadow(0 1px 0 #a3a3a3)
    drop-shadow(0 -1px 0 #a3a3a3)
    drop-shadow(.7px .7px 0 #a3a3a3)
    drop-shadow(-.7px .7px 0 #a3a3a3)
    drop-shadow(.7px -.7px 0 #a3a3a3)
    drop-shadow(-.7px -.7px 0 #a3a3a3)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.22: keep the 1px outline, change its color to #F5EDFA. */
.cv-next-logo-float img {
  filter:
    drop-shadow(1px 0 0 #F5EDFA)
    drop-shadow(-1px 0 0 #F5EDFA)
    drop-shadow(0 1px 0 #F5EDFA)
    drop-shadow(0 -1px 0 #F5EDFA)
    drop-shadow(.7px .7px 0 #F5EDFA)
    drop-shadow(-.7px .7px 0 #F5EDFA)
    drop-shadow(.7px -.7px 0 #F5EDFA)
    drop-shadow(-.7px -.7px 0 #F5EDFA)
    drop-shadow(0 4px 7px rgba(48,28,42,.12));
}


/* v0.3.23: fix sticky header in Safari/desktop browsers.
   The .cv-next wrapper's overflow clipping was creating a scroll container
   that prevented the sticky header from attaching to the viewport. */
body.cv-next-template {
  overflow-x:hidden;
}
.cv-next {
  overflow:visible !important;
}
.cv-next-header {
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0;
  z-index:10020;
}
body.admin-bar .cv-next-header {
  top:32px;
}
@media (max-width:782px) {
  body.admin-bar .cv-next-header {
    top:46px;
  }
}


/* v0.3.25: remove the floating logo outline so the header logo is plain black with no white/colored border. */
.cv-next-logo-float img {
  filter:none !important;
}


/* v0.3.26: move the large brand mark below the hero, add Home, and remove header logo spacing. */
.cv-next-header-inner,
.cv-next-header.is-scrolled .cv-next-header-inner {
  padding-left:0 !important;
}

.cv-next-section-logo {
  position:absolute;
  z-index:8;
  top:34px;
  left:max(34px,calc((100vw - 1460px)/2));
  width:205px;
  height:170px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
}
.cv-next-section-logo img {
  display:block;
  width:205px;
  height:170px;
  object-fit:contain;
  filter:none !important;
}

.cv-next-size-section {
  position:relative;
}

/* Old floating-header logo is no longer rendered, but neutralize it if cached markup appears. */
.cv-next-logo-float { display:none !important; }

@media (max-width:1180px) {
  .cv-next-section-logo {
    left:22px;
    width:170px;
    height:142px;
  }
  .cv-next-section-logo img {
    width:170px;
    height:142px;
  }
}

@media (max-width:920px) {
  .cv-next-header-inner,
  .cv-next-header.is-scrolled .cv-next-header-inner {
    grid-template-columns:1fr auto !important;
    padding-left:0 !important;
  }
  .cv-next-nav-toggle {
    grid-column:1 !important;
    justify-self:start !important;
  }
  .cv-next-actions {
    grid-column:2 !important;
    grid-row:1 !important;
  }
  .cv-next-section-logo {
    position:relative;
    top:auto;
    left:auto;
    width:145px;
    height:120px;
    margin:20px auto -6px;
  }
  .cv-next-section-logo img {
    width:145px;
    height:120px;
  }
}

@media (max-width:680px) {
  .cv-next-section-logo {
    width:125px;
    height:104px;
    margin-top:16px;
  }
  .cv-next-section-logo img {
    width:125px;
    height:104px;
  }
}


/* v0.3.27: quote-only third hero slide for the Simsbury prom corsage photo. */
.cv-next-slide-quote .cv-next-hero-shade {
  background:linear-gradient(90deg,
    rgba(24,16,21,.72) 0%,
    rgba(24,16,21,.56) 34%,
    rgba(24,16,21,.18) 64%,
    rgba(24,16,21,.03) 100%);
}
.cv-next-slide-quote .cv-next-hero-content {
  padding-right:52%;
}
.cv-next-slide-quote .cv-next-hero-content p {
  max-width:680px;
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(24px,2.25vw,34px);
  line-height:1.42;
  font-style:italic;
  font-weight:400;
  color:#fff;
  text-shadow:0 3px 16px rgba(0,0,0,.58);
}
.cv-next-slide-quote .cv-next-hero-content p::before { content:"“"; }
.cv-next-slide-quote .cv-next-hero-content p::after { content:"”"; }

@media (max-width:920px) {
  .cv-next-slide-quote .cv-next-hero-content {
    padding-right:24%;
  }
  .cv-next-slide-quote .cv-next-hero-content p {
    font-size:clamp(21px,3.3vw,29px);
  }
}
@media (max-width:680px) {
  .cv-next-slide-quote .cv-next-hero-content {
    padding-right:18px;
  }
  .cv-next-slide-quote .cv-next-hero-content p {
    max-width:92%;
    font-size:20px;
    line-height:1.42;
  }
}


/* v0.3.28: move the prom testimonial down so the faces remain unobstructed.
   The quote now spans much farther across the lower part of the photo. */
.cv-next-slide-quote .cv-next-hero-shade {
  background:linear-gradient(
    180deg,
    rgba(20,14,18,.03) 0%,
    rgba(20,14,18,.04) 44%,
    rgba(20,14,18,.38) 72%,
    rgba(20,14,18,.68) 100%
  );
}
.cv-next-slide-quote .cv-next-hero-content {
  position:absolute;
  left:5.5%;
  right:5.5%;
  bottom:28px;
  top:auto;
  width:auto;
  min-height:0;
  margin:0;
  padding:0 70px 0 0;
  display:block;
  transform:none;
}
.cv-next-slide-quote .cv-next-hero-content p {
  max-width:1180px;
  margin:0;
  font-size:clamp(22px,1.8vw,29px);
  line-height:1.38;
  text-shadow:0 3px 14px rgba(0,0,0,.68);
}

@media (max-width:920px) {
  .cv-next-slide-quote .cv-next-hero-content {
    left:6%;
    right:6%;
    bottom:26px;
    padding-right:35px;
  }
  .cv-next-slide-quote .cv-next-hero-content p {
    max-width:none;
    font-size:clamp(19px,2.7vw,25px);
    line-height:1.4;
  }
}
@media (max-width:680px) {
  .cv-next-slide-quote .cv-next-hero-content {
    left:7%;
    right:7%;
    bottom:24px;
    padding-right:0;
  }
  .cv-next-slide-quote .cv-next-hero-content p {
    max-width:none;
    font-size:18px;
    line-height:1.38;
  }
}


/* v0.3.29: BusinessRate Best of 2026 badge opposite the brand logo. */
.cv-next-section-award {
  position:absolute;
  z-index:8;
  top:28px;
  right:max(34px,calc((100vw - 1460px)/2));
  width:320px;
  height:220px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  pointer-events:none;
}
.cv-next-section-award img {
  display:block;
  width:320px;
  height:220px;
  object-fit:contain;
}

@media (max-width:1180px) {
  .cv-next-section-award {
    right:22px;
    width:270px;
    height:186px;
  }
  .cv-next-section-award img {
    width:270px;
    height:186px;
  }
}

@media (max-width:920px) {
  .cv-next-section-award {
    position:relative;
    top:auto;
    right:auto;
    width:220px;
    height:152px;
    margin:4px auto 8px;
  }
  .cv-next-section-award img {
    width:220px;
    height:152px;
  }
}

@media (max-width:680px) {
  .cv-next-section-award {
    width:190px;
    height:132px;
  }
  .cv-next-section-award img {
    width:190px;
    height:132px;
  }
}


/* v0.3.30: slightly enlarge the CV logo opposite the award badge. */
.cv-next-section-logo {
  top:26px;
  width:245px;
  height:200px;
}
.cv-next-section-logo img {
  width:245px;
  height:200px;
}

@media (max-width:1180px) {
  .cv-next-section-logo {
    width:198px;
    height:165px;
  }
  .cv-next-section-logo img {
    width:198px;
    height:165px;
  }
}

@media (max-width:920px) {
  .cv-next-section-logo {
    width:168px;
    height:138px;
  }
  .cv-next-section-logo img {
    width:168px;
    height:138px;
  }
}

@media (max-width:680px) {
  .cv-next-section-logo {
    width:146px;
    height:121px;
  }
  .cv-next-section-logo img {
    width:146px;
    height:121px;
  }
}


/* =========================================================
   v0.3.34 MOBILE HEADER / BRAND FLOW
   Mobile-only refinements requested for CV Next:
   - sticky menu bar sits flush at the top on small screens
   - visible "Menu" label next to hamburger
   - larger brand logo below hero
   - award moved below the Flower Delivery heading and enlarged
   ========================================================= */
@media (max-width:920px) {
  .cv-next-nav-toggle {
    width:auto !important;
    min-width:92px;
    height:46px;
    display:inline-flex !important;
    flex-direction:row !important;
    align-items:center;
    justify-content:flex-start !important;
    gap:10px !important;
    padding:0 8px 0 2px;
  }
  .cv-next-nav-icon {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    flex:0 0 auto;
  }
  .cv-next-nav-icon span {
    display:block;
    width:26px;
    height:2px;
    background:#2f2b2d;
    border-radius:2px;
  }
  .cv-next-nav-label {
    display:inline-block !important;
    width:auto !important;
    height:auto !important;
    background:none !important;
    color:#2f2b2d;
    font-size:16px;
    font-weight:700;
    line-height:1;
    letter-spacing:.01em;
  }
}

@media (max-width:782px) {
  /* The WP admin-bar class can remain on the body even when the bar is hidden.
     Keep the mobile navigation flush to the top instead of leaving a 46px gap. */
  body.admin-bar .cv-next-header,
  .cv-next-header {
    top:0 !important;
  }
}

@media (max-width:680px) {
  .cv-next-header-inner,
  .cv-next-header.is-scrolled .cv-next-header-inner {
    min-height:72px;
    width:calc(100% - 24px);
    grid-template-columns:1fr auto !important;
    gap:10px;
  }

  .cv-next-nav-toggle {
    grid-column:1 !important;
    justify-self:start !important;
  }

  .cv-next-actions {
    grid-column:2 !important;
    grid-row:1 !important;
  }

  /* Make the CV mark a strong mobile-width brand element below the hero. */
  .cv-next-section-logo {
    position:relative;
    top:auto;
    left:auto;
    width:min(82vw,340px);
    height:auto;
    margin:18px auto 8px;
    align-items:center;
    justify-content:center;
  }
  .cv-next-section-logo img {
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
  }

  .cv-next-size-section {
    padding-top:26px;
  }

  /* Mobile flow: heading, all three arrangements, then the award badge. */
  .cv-next-size-section .cv-next-wrap {
    display:flex;
    flex-direction:column;
  }
  .cv-next-size-section .cv-next-section-heading { order:1; }
  .cv-next-size-section .cv-next-size-grid { order:2; }
  .cv-next-size-section .cv-next-section-award { order:3; }

  .cv-next-section-heading {
    margin-top:4px;
    margin-bottom:12px;
  }
  .cv-next-section-heading h2 {
    margin-bottom:10px;
  }

  /* Award sits below the Large arrangement on phones. */
  .cv-next-section-award {
    position:relative;
    top:auto;
    right:auto;
    width:min(62vw,260px);
    height:auto;
    margin:30px auto 10px;
    align-items:center;
    justify-content:center;
  }
  .cv-next-section-award img {
    width:100%;
    height:auto;
    object-fit:contain;
  }
}

/* v0.3.36: Lightweight retail announcement bar. Blank message = no bar. */
.cv-next-alert-bar {
  width:100%;
  box-sizing:border-box;
  background:var(--cv-alert-bg,#8A4F60);
  color:var(--cv-alert-color,#FFFFFF);
  font-size:var(--cv-alert-size,18px);
  line-height:1.35;
  font-weight:700;
  text-align:center;
  position:relative;
  z-index:1002;
}
.cv-next-alert-message {
  width:min(1400px,100%);
  margin:0 auto;
  padding:12px 22px;
  box-sizing:border-box;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
@media (max-width:782px) {
  .cv-next-alert-message { padding:10px 14px; }
}

/* =========================================================
   v0.3.38 GLOBAL SITE SHELL + DESKTOP AWARD SPACING
   When enabled in CV Next > Site Settings, the CV Next header,
   announcement bar and footer wrap existing Divi/WooCommerce content.
   ========================================================= */
body.cv-next-global-shell #top-header,
body.cv-next-global-shell #main-header,
body.cv-next-global-shell #main-footer,
body.cv-next-global-shell .et-l--header,
body.cv-next-global-shell .et-l--footer {
  display:none !important;
}

/* Divi often reserves space for a fixed header. Remove only that shell gap. */
body.cv-next-global-shell #page-container {
  padding-top:0 !important;
  margin-top:0 !important;
}

/* Keep the sticky CV Next header attached to the viewport rather than being
   constrained to a short wrapper containing only the header itself. */
.cv-next-global-header-shell {
  display:contents;
}

.cv-next-global-footer-shell {
  width:100%;
}

/* Give the desktop award badge a little more breathing room from the center
   heading by nudging it farther toward the right edge. */
@media (min-width:921px) {
  .cv-next-section-award {
    right:max(14px,calc((100vw - 1540px)/2));
  }
}

@media (min-width:921px) and (max-width:1180px) {
  .cv-next-section-award {
    right:12px;
  }
}

/* v0.3.40: move the desktop award farther toward the right edge so it no
   longer crowds the centered Flower Delivery heading. */
@media (min-width:921px) {
  .cv-next-section-award {
    right:max(-8px,calc((100vw - 1660px)/2));
  }
}

@media (min-width:921px) and (max-width:1180px) {
  .cv-next-section-award {
    right:-6px;
  }
}


/* v0.3.38: PAY NOW is business-critical and remains visible in the mobile bar. */
@media (max-width:920px) {
  .cv-next-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
  }
  .cv-next-pay {
    display:inline-flex !important;
    min-width:104px;
    height:40px;
    padding:0 11px;
    font-size:13px;
    white-space:nowrap;
  }
  .cv-next-lock { font-size:13px; }
}

@media (max-width:420px) {
  .cv-next-header-inner,
  .cv-next-header.is-scrolled .cv-next-header-inner {
    width:calc(100% - 16px);
    gap:6px;
  }
  .cv-next-nav-toggle {
    gap:7px !important;
    padding-right:2px;
  }
  .cv-next-nav-icon span { width:23px; }
  .cv-next-nav-label { font-size:15px; }
  .cv-next-actions { gap:6px; }
  .cv-next-pay {
    min-width:94px;
    height:38px;
    padding:0 8px;
    font-size:12px;
    letter-spacing:.025em;
  }
  .cv-next-cart { width:38px; height:38px; }
}

/* v0.3.41: Site-wide contact form above the footer */
.cv-next-contact-section {
  background:linear-gradient(180deg,#fff 0%,#fbf5f8 100%);
  padding:72px 0;
  border-top:1px solid rgba(183,95,114,.12);
}
.cv-next-contact-card {
  max-width:900px;
  margin:0 auto;
  background:#fff;
  border:1px solid rgba(183,95,114,.18);
  border-radius:22px;
  padding:42px;
  box-shadow:0 18px 46px rgba(92,60,80,.09);
}
.cv-next-contact-heading { text-align:center; max-width:650px; margin:0 auto 30px; }
.cv-next-contact-heading h2 { margin:4px 0 10px; color:#483347; font-size:clamp(32px,4vw,46px); }
.cv-next-contact-heading p { margin:0; color:#665A65; font-size:16px; line-height:1.65; }
.cv-next-contact-form { margin:0; }
.cv-next-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.cv-next-form-field { display:flex; flex-direction:column; gap:7px; }
.cv-next-form-wide { grid-column:1 / -1; }
.cv-next-form-field label { color:#493248; font-size:14px; font-weight:700; }
.cv-next-form-field label span { color:#B75F72; }
.cv-next-form-field input,
.cv-next-form-field textarea {
  width:100%;
  border:1px solid #d8cbd1;
  border-radius:10px;
  background:#fff;
  color:#30282c;
  font:inherit;
  font-size:16px;
  padding:12px 14px;
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
  box-sizing:border-box;
}
.cv-next-form-field input { min-height:49px; }
.cv-next-form-field textarea { resize:vertical; min-height:150px; }
.cv-next-form-field input:focus,
.cv-next-form-field textarea:focus { border-color:#B75F72; box-shadow:0 0 0 3px rgba(183,95,114,.12); }
.cv-next-contact-submit { margin-top:24px; border:0; cursor:pointer; }
.cv-next-form-notice { max-width:760px; margin:0 auto 24px; padding:13px 16px; border-radius:10px; text-align:center; font-weight:700; }
.cv-next-form-success { background:#eef8f1; color:#245c35; border:1px solid #b9dec3; }
.cv-next-form-error { background:#fff1f1; color:#7c2f2f; border:1px solid #e4b8b8; }
.cv-next-hp { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

@media (max-width:700px) {
  .cv-next-contact-section { padding:52px 0; }
  .cv-next-contact-card { padding:28px 20px; border-radius:16px; }
  .cv-next-form-grid { grid-template-columns:1fr; gap:16px; }
  .cv-next-form-wide { grid-column:auto; }
  .cv-next-contact-submit { width:100%; }
}

/* v0.3.47: Turnstile anti-spam protection */
.cv-next-turnstile{margin:4px 0 18px;}
.cv-next-turnstile .cf-turnstile{min-height:65px;}
