/* Fleur de Farber local preview polish - 2026-09-08 */
:root { --fleur-shadow: 0 18px 50px rgba(21,19,15,.12); --fleur-gold-soft: rgba(231,196,109,.16); }
html { scroll-padding-top: 7.5rem; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
.site-header { transition: box-shadow .28s ease, background-color .28s ease, border-color .28s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(21,19,15,.10); }
.navlinks a[aria-current="page"], .mobile-panel a[aria-current="page"] { text-decoration-thickness: 2px; text-underline-offset: .38em; }
.navlinks a:not(.call), .footer-nav a { position: relative; }
.navlinks a:not(.call)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.4rem; height: 1px; background: currentColor; transition: right .22s ease; }
.navlinks a:not(.call):hover::after, .navlinks a:not(.call):focus-visible::after, .navlinks a[aria-current="page"]::after { right: 0; }
a:focus-visible, summary:focus-visible { outline: 3px solid #e7c46d; outline-offset: 4px; border-radius: 3px; }
.primary, .ghost, .call, .quick-actions a, .service-card, .mosaic { transition: transform .22s ease, box-shadow .22s ease, filter .22s ease; }
@media (hover:hover) {
  .primary:hover, .ghost:hover, .call:hover { transform: translateY(-2px); }
  .service-card:hover, .mosaic:hover { transform: translateY(-4px); box-shadow: var(--fleur-shadow); }
  .quick-actions a:hover { transform: translateY(-3px); }
  .service-card img, .mosaic img, .story-photo img, .visit-image img, .pick-photo img { transition: transform .65s cubic-bezier(.2,.65,.25,1), filter .4s ease; }
  .service-card:hover img, .mosaic:hover img { transform: scale(1.025); }
}
.service-card, .mosaic, .story-photo, .visit-image, .pick-photo { overflow: hidden; }
.hero-card { box-shadow: 0 20px 55px rgba(0,0,0,.15); }
.hero-reassure { max-width: 42rem; }
.awardbar { position: relative; overflow: hidden; }
.awardbar::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 0%, transparent 35%, rgba(255,255,255,.13) 48%, transparent 60%, transparent 100%); transform: translateX(-120%); }
@media (prefers-reduced-motion: no-preference) { .awardbar::before { animation: fleur-shine 8s ease-in-out infinite 2s; } }
@keyframes fleur-shine { 0%,70%,100% { transform: translateX(-120%); } 82% { transform: translateX(120%); } }
.reveal-ready { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.65,.25,1); }
.reveal-ready.revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal-ready { opacity: 1; transform: none; transition: none; } }
.mobile-menu[open] .mobile-panel { animation: fleur-menu-in .18s ease-out; }
@keyframes fleur-menu-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.mobile-dock { box-shadow: 0 -12px 34px rgba(21,19,15,.12); }
@media (max-width: 760px) {
  .top { line-height: 1.35; }
  .home-hero { min-height: auto; }
  .home-inner h1 { text-wrap: balance; }
  .home-inner p, .pick-copy p, .budget-head p, .order-head p { text-wrap: pretty; }
  .quick-actions a { min-height: 7.2rem; }
  .mobile-panel { max-height: calc(100vh - 10rem); overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 420px) {
  .top { font-size: .78rem; }
  .brand-banner img { min-height: 7.25rem; object-fit: cover; }
  .actions { align-items: stretch; }
  .actions .primary, .actions .ghost { width: 100%; text-align: center; }
}

/* Canonical expanded navigation */
.services-menu{position:relative}
.services-menu>summary{list-style:none;cursor:pointer;font:inherit;color:inherit;display:flex;align-items:center;gap:.3rem;padding:.4rem 0}
.services-menu>summary::-webkit-details-marker{display:none}
.services-menu>summary:after{content:'+';font-size:.9em;opacity:.6;transition:transform .2s ease}
.services-menu[open]>summary:after{transform:rotate(45deg)}
.services-menu>summary.active,.services-menu>summary:hover{color:var(--gold,#b99345)}
.services-panel{position:absolute;z-index:50;top:calc(100% + .8rem);right:0;width:min(19rem,80vw);padding:.65rem;background:#fff;border:1px solid rgba(21,19,15,.12);box-shadow:0 18px 50px rgba(21,19,15,.16);display:grid;border-radius:.15rem}
.services-panel a{padding:.72rem .85rem;border-bottom:1px solid rgba(21,19,15,.07);white-space:normal}
.services-panel a:last-child{border-bottom:0}
.services-panel a[aria-current="page"]{font-weight:700}
.mobile-services{display:grid;gap:.15rem;margin:.6rem 0;padding:.8rem 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.mobile-services>strong{padding:.35rem 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;opacity:.7}
@media (max-width:1180px){.navlinks{gap:clamp(.55rem,1vw,1rem)}.navlinks>a,.services-menu>summary{font-size:.9rem}}
@media (max-width:900px){.services-menu{display:none}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Footer refinement: useful, not encyclopedic */
.footer-nav{display:flex;flex-wrap:wrap;gap:.45rem 1rem;margin-top:1rem;max-width:46rem}
.footer-nav a{font-size:.88rem;line-height:1.35}
.footer small{display:inline-block;margin-top:.4rem;line-height:1.45;opacity:.8}
@media (max-width:700px){.footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem}.footer-nav a{padding:.18rem 0}}

/* Chrome refinement: quieter, richer, more intentional */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.top { border-bottom: 1px solid rgba(231,196,109,.22); }
.top a { text-underline-offset: .22em; }
.site-header { background: rgba(11,10,8,.94); backdrop-filter: blur(18px) saturate(1.08); -webkit-backdrop-filter: blur(18px) saturate(1.08); }
.site-header.is-scrolled { background: rgba(11,10,8,.975); box-shadow: 0 12px 34px rgba(0,0,0,.24); }
.nav { min-height: 78px; }
.brand { letter-spacing: -.015em; white-space: nowrap; }
.navlinks { gap: clamp(.7rem,1.25vw,1.18rem); }
.navlinks a:not(.call) { letter-spacing: .005em; }
.call { box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 7px 20px rgba(0,0,0,.14); }
.services-menu>summary { min-height: 44px; font-weight: 700; }
.services-menu>summary:after { content: '⌄'; font-size: .85em; transform: translateY(-1px); opacity: .72; }
.services-menu[open]>summary:after { transform: rotate(180deg) translateY(-1px); }
.services-panel { top: calc(100% + .55rem); padding: .55rem; border-color: rgba(200,164,95,.28); border-radius: 14px; background: rgba(255,253,248,.985); box-shadow: 0 24px 60px rgba(21,19,15,.20); }
.services-panel:before { content:''; position:absolute; top:-6px; right:25px; width:11px; height:11px; background:#fffdf8; border-left:1px solid rgba(200,164,95,.28); border-top:1px solid rgba(200,164,95,.28); transform:rotate(45deg); }
.services-panel a { border-radius: 9px; border-bottom: 0; padding: .72rem .8rem; line-height: 1.25; }
.services-panel a:hover, .services-panel a:focus-visible { background: #f6f0e4; color: var(--wine); }
.services-panel a[aria-current="page"] { background: #f3e8cf; color: var(--wine); }
.breadcrumbs { position: relative; z-index: 5; border-bottom-color: rgba(229,215,191,.75); background: rgba(255,253,248,.96); }
.breadcrumbs .wrap { min-height: 42px; scrollbar-width: none; }
.breadcrumbs .wrap::-webkit-scrollbar { display:none; }
.footer-nav a { text-underline-offset: .25em; }
.footer-nav a:hover { text-decoration: underline; }
footer { border-top: 1px solid rgba(200,164,95,.22); }
.mobile-dock { border-color: rgba(200,164,95,.35); }
.mobile-dock a { transition: transform .18s ease, filter .18s ease; }
.mobile-dock a:active { transform: scale(.985); }

@media (max-width:1040px) {
  .nav { min-height: 70px; padding: 12px 0; }
  .mobile-menu summary { border: 1px solid rgba(231,196,109,.28); border-radius: 999px; padding: 9px 15px; min-width: 68px; }
  .mobile-menu[open] summary { background: rgba(231,196,109,.10); }
  .mobile-menu[open] .mobile-panel { top: 54px; border-radius: 16px; padding: 10px; border-color: rgba(200,164,95,.35); }
  .mobile-panel a { min-height: 46px; padding: 11px 13px; }
  .mobile-services { margin: .5rem 0; padding: .65rem 0; }
  .mobile-services>strong { padding: .35rem .8rem; }
}
@media (max-width:800px) {
  .mobile-dock { bottom: max(10px, env(safe-area-inset-bottom)); left: 10px; right: 10px; border-radius: 20px; padding: 7px; }
  body { padding-bottom: env(safe-area-inset-bottom); }
}
@media (max-width:520px) {
  .brand { font-size: 1.28rem; }
  .top { padding-inline: 10px; }
  .breadcrumbs { font-size: .78rem; }
}

/* Shared chrome tokens and surface hierarchy */
:root {
  --fleur-radius-sm: 12px;
  --fleur-radius-md: 18px;
  --fleur-radius-lg: 26px;
  --fleur-shadow-soft: 0 12px 32px rgba(21,19,15,.09);
  --fleur-shadow-lift: 0 20px 54px rgba(21,19,15,.14);
  --fleur-border-soft: rgba(200,164,95,.22);
}

/* Utility surfaces should feel like one family */
.panel,
.service-card,
.gallery-item,
.guidance-card,
.hero-card,
.order-panel,
.award-card,
.fresh-note,
.choice-art,
[class*="-card"] {
  border-color: var(--fleur-border-soft);
}

.primary,
.call,
.ghost,
.mobile-dock a,
.hero-actions a,
.fresh-actions a,
.visit-actions a,
.shop-actions a,
.result-actions a,
.bridge-actions a {
  min-height: 48px;
}

.primary,
.call {
  letter-spacing: .005em;
}

.primary:active,
.call:active,
.ghost:active {
  transform: translateY(0) scale(.99);
}

/* Keep text links elegant and consistent */
.text-link,
.light-link,
.quiet-link,
.gallery-link,
.local-link {
  text-underline-offset: .28em;
  text-decoration-thickness: 1.25px;
}
.text-link:hover,
.light-link:hover,
.quiet-link:hover,
.gallery-link:hover,
.local-link:hover {
  text-decoration-thickness: 2px;
}

/* Premium page-frame rhythm */
.page-hero + .section { border-top: 1px solid rgba(229,215,191,.35); }
.trust-strip { box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
footer .footer { align-items: start; }
.footer > div { min-width: 0; }
.footer > div:first-child { line-height: 1.65; }
.footer > div:last-child { line-height: 1.65; }

/* Prevent hover motion from making dense utility UI feel jumpy */
@media (hover:hover) {
  .services-panel a,
  .footer-nav a,
  .breadcrumbs a,
  .mobile-panel a { transition: background-color .18s ease, color .18s ease, opacity .18s ease; }
}

@media (max-width:800px) {
  .footer { gap: 24px; }
  .footer > div + div { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.10); }
  .footer-nav { margin-top: .85rem; }
}

/* Color/contrast pass: preserve the Fleur palette while making text easier to read */
:root {
  --fleur-gold-bright: #e7c46d;
  --fleur-gold-text: #865f20;
  --fleur-gold-text-strong: #745019;
  --fleur-muted-strong: #554f45;
  --fleur-cream-text: #3f392f;
}

/* Light surfaces: use the deeper bronze for actual text */
body,
.section,
.page-hero,
.panel,
.breadcrumbs,
.services-panel,
.fresh-note,
.hero-card {
  --gold: var(--fleur-gold-text);
}

.eyebrow,
.section .eyebrow,
.page-hero .eyebrow,
.panel .eyebrow,
.breadcrumbs + main .eyebrow,
.budget-grid article > span,
.quick-actions span,
.order-steps span,
.number,
.steps b,
.formula-steps b,
.idea-grid > article > span,
.season-grid span,
.process li b,
.confidence-card span,
.use-grid span,
.chooser legend span,
.prep-grid li b,
.fresh-note > span {
  color: var(--fleur-gold-text-strong);
}

/* Muted body copy: a touch darker on light backgrounds */
.section p,
.panel p,
.page-hero p,
.quick-actions small,
.service-card p,
.split-head p,
.fresh-copy p,
.formula-steps span,
.order-panel span,
.process li span,
.prep-grid li span,
.sympathy-grid ul,
.table-grid ul,
.breadcrumbs a {
  color: var(--fleur-muted-strong);
}

/* Dark surfaces: keep the brighter gold and lighter secondary copy */
.dark,
.cta,
.site-header,
footer,
.mobile-panel,
.style-section,
.philosophy,
.recognition,
.good-fit aside,
.chooser-result {
  --gold: var(--fleur-gold-bright);
}

.dark .eyebrow,
.cta .eyebrow,
.site-header .brand,
.mobile-menu summary,
.style-section .eyebrow,
.philosophy .eyebrow,
.recognition .eyebrow,
.good-fit aside > span,
.chooser-result .eyebrow,
.dark [class*="number"],
.dark b,
.dark article > span {
  color: var(--fleur-gold-bright);
}

.dark p,
.cta p,
.style-section p,
.philosophy p,
.recognition p,
.good-fit aside p,
.chooser-result p,
footer {
  color: #e7dfd0;
}

/* Gold/cream bands: prioritize legibility over delicacy */
.trust-strip strong { color: #15130f; }
.trust-strip span { color: #4b381e; }
.awardbar { color: #15130f; }

/* Navigation and footer text should never fade into their backgrounds */
.navlinks > a:not(.call) { color: #fff8e8; }
.navlinks > a:not(.call):hover,
.navlinks > a[aria-current="page"]:not(.call) { color: #f3d98f; }
.footer a { color: #f7dfa4; }
.footer small { color: #d9d0c1; opacity: 1; }

/* White cards and asides: ensure helper copy is comfortably readable */
aside p,
[class*="-card"] p,
[class*="-note"] p {
  color: var(--fleur-muted-strong);
}

/* Re-assert light text inside explicitly dark cards after generic card rule */
.dark [class*="-card"] p,
.good-fit aside p,
.chooser-result p,
.style-section [class*="-card"] p,
.philosophy [class*="-card"] p {
  color: #e7dfd0;
}

/* Focus color needs contrast on both dark and light UI */
a:focus-visible,
summary:focus-visible,
button:focus-visible {
  outline-color: #d4a63d;
}

/* Screenshot-driven correction: white/light cards must always use dark copy.
   This deliberately outranks inherited hero text rules. */
.fresh-hero .fresh-note,
.fresh-hero .fresh-note strong,
.fresh-hero .fresh-note h2,
.fresh-hero .fresh-note h3,
.fresh-hero .fresh-note p {
  color: #2f2a23 !important;
  text-shadow: none !important;
}
.fresh-hero .fresh-note p { color: #554f45 !important; }
.fresh-hero .fresh-note > span { color: #865f20 !important; }

/* Same principle for any light inset card placed inside a dark/photographic hero. */
[class*="hero"] aside:not(.dark),
[class*="hero"] [class*="note"]:not(.dark) {
  color: #2f2a23;
}
[class*="hero"] aside:not(.dark) p,
[class*="hero"] [class*="note"]:not(.dark) p {
  color: #554f45 !important;
  text-shadow: none !important;
}

/* Occasion family rail: ties directory cards to their destination pages */
.occasion-family-nav {
  background: #f4ead6;
  border-bottom: 1px solid #ddcda9;
  color: #2f2a23;
}
.occasion-family-nav .wrap {
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: .45rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.occasion-family-nav .wrap::-webkit-scrollbar { display: none; }
.occasion-family-nav span {
  flex: none;
  margin-right: .45rem;
  color: #745019;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.occasion-family-nav a {
  flex: none;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: .48rem .78rem;
  border-radius: 999px;
  color: #3f392f;
  font-size: .84rem;
  font-weight: 800;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.occasion-family-nav a:hover,
.occasion-family-nav a:focus-visible {
  background: #fffaf0;
  color: #15130f;
}
.occasion-family-nav a[aria-current="page"] {
  background: #15130f;
  color: #f7dfa4;
  box-shadow: 0 4px 14px rgba(21,19,15,.12);
}

/* Make the specialty links on the Occasions directory feel like destinations */
.path-links a {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.path-links a strong { color: #201d18; }
.path-links a span { color: #554f45; }
@media (hover:hover) {
  .path-links a:hover { transform: translateY(-2px); box-shadow: var(--fleur-shadow-soft); border-color: #cdb477; }
}

@media (max-width:700px) {
  .occasion-family-nav .wrap { min-height: 50px; gap: .3rem; }
  .occasion-family-nav span { display: none; }
  .occasion-family-nav a { font-size: .8rem; padding-inline: .72rem; }
}

/* Browser-verified family alignment: keep occasion destination heroes related on phones */
@media (max-width: 850px) {
  .dance-hero,
  .seasonal-hero,
  .gift-hero,
  .plant-hero {
    padding-top: 46px;
    padding-bottom: 46px;
  }
  .dance-hero .hero-grid,
  .seasonal-hero .hero-grid,
  .gift-hero .hero-grid,
  .plant-hero .hero-grid {
    gap: 24px !important;
  }
  .dance-hero aside,
  .seasonal-hero aside,
  .gift-hero aside,
  .plant-hero aside {
    padding: 22px !important;
    border-radius: 22px !important;
    max-width: 100% !important;
  }
  .dance-hero aside strong,
  .seasonal-hero aside strong,
  .gift-hero aside strong,
  .plant-hero aside strong {
    font-size: 1.38rem !important;
    line-height: 1.18 !important;
  }
  .dance-hero aside p,
  .seasonal-hero aside p,
  .gift-hero aside p,
  .plant-hero aside p {
    font-size: .94rem !important;
    line-height: 1.6 !important;
  }
}

/* Small chrome labels were browser-measured below 12px; keep them comfortably legible. */
.occasion-family-nav span,
.photo > span,
.gallery-item figcaption > span,
.dance-hero aside > span,
.seasonal-hero aside > span,
.gift-hero aside > span,
.plant-hero aside > span,
.timing-card > span,
.honest-card span,
.note-card span,
.care-card > span {
  font-size: .75rem !important;
}
.mobile-services > strong { font-size: .75rem; }
.mobile-dock a small { font-size: .75rem; }

/* Do not ask the older 450px shop photos to carry oversized desktop slots. */
.moment img[src="/images/shop-front.webp"],
.moment img[src="/images/shop-detail.webp"],
.gallery-photo img[src="/images/shop-front.webp"],
.gallery-photo img[src="/images/shop-detail.webp"],
.contact-grid img[src="/images/shop-front.webp"] {
  width: min(100%, 450px) !important;
  height: auto !important;
  margin-left: auto;
  margin-right: auto;
}
.gallery-photo:has(img[src="/images/shop-front.webp"]),
.gallery-photo:has(img[src="/images/shop-detail.webp"]) {
  display: grid;
  place-items: center;
}

/* Final mobile occasion-family rhythm */
@media (max-width: 600px) {
  .occasions-hero h1,
  .wedding-hero h1,
  .sympathy-hero h1,
  .dance-hero h1,
  .seasonal-hero h1,
  .gift-hero h1,
  .plant-hero h1 {
    font-size: clamp(2.35rem, 11vw, 3rem) !important;
    line-height: .98 !important;
  }
  .dance-hero p,
  .seasonal-hero p,
  .gift-hero p,
  .plant-hero p {
    line-height: 1.58 !important;
  }
  .dance-hero,
  .seasonal-hero,
  .gift-hero,
  .plant-hero {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

/* Delivery-area family rail: same visual grammar as the occasion family. */
.area-family-nav {
  background: #f4ead6;
  border-bottom: 1px solid #ddcda9;
  color: #2f2a23;
}
.area-family-nav .wrap {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: .45rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.area-family-nav .wrap::-webkit-scrollbar { display: none; }
.area-family-nav span {
  flex: none;
  margin-right: .45rem;
  color: #745019;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.area-family-nav a {
  flex: none;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: .48rem .78rem;
  border-radius: 999px;
  color: #3f392f;
  font-size: .84rem;
  font-weight: 800;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.area-family-nav a:hover,
.area-family-nav a:focus-visible { background: #fffaf0; color: #15130f; }
.area-family-nav a[aria-current="page"] {
  background: #15130f;
  color: #f7dfa4;
  box-shadow: 0 4px 14px rgba(21,19,15,.12);
}
@media (max-width:700px) {
  .area-family-nav .wrap { min-height: 50px; gap: .3rem; }
  .area-family-nav span { display:none; }
  .area-family-nav a { font-size:.8rem; padding-inline:.72rem; }
}

/* Baton Rouge hero: preserve the award impact without letting the long headline dominate the page. */
.br-hero h1 {
  font-size: clamp(3.4rem, 5vw, 4.7rem) !important;
  line-height: .98 !important;
  max-width: 9.5ch;
}
@media (max-width:900px) {
  .br-hero .hero-grid { gap: 32px !important; }
  .br-hero h1 { max-width: 12ch; }
}
@media (max-width:600px) {
  .br-hero { padding-top: 46px; padding-bottom: 46px; }
  .br-hero h1 {
    font-size: clamp(2.45rem, 11vw, 3.1rem) !important;
    line-height: 1 !important;
    max-width: none;
  }
}

/* Browser-driven mobile hero compaction: preserve the information without a full-screen-plus intro. */
@media (max-width:620px) {
  .home-hero {
    min-height: 0 !important;
    padding: 46px 0 42px;
  }
  .home-hero .hero-grid {
    gap: 24px !important;
    padding-top: 0 !important;
  }
  .home-inner h1 {
    font-size: clamp(3.05rem, 14vw, 3.65rem) !important;
    margin-top: 14px !important;
    margin-bottom: 18px !important;
  }
  .home-inner p { font-size: 1.05rem !important; line-height: 1.65 !important; }
  .home-inner .actions { margin-top: 24px !important; }
  .hero-card {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 22px !important;
    border-radius: 22px !important;
    display: grid !important;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    column-gap: 20px;
    align-items: center;
  }
  .hero-card > span {
    grid-row: 1 / 4;
    font-size: 4rem !important;
    line-height: .82 !important;
  }
  .hero-card > strong {
    margin: 0 0 8px !important;
    max-width: none !important;
    font-size: 1.18rem !important;
  }
  .hero-card > div {
    padding-top: 8px !important;
    font-size: .88rem;
  }
  .hero-card > small { margin-top: 5px !important; font-size: .75rem !important; }

  .fresh-hero {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
  .fresh-hero-grid { gap: 24px !important; }
  .fresh-hero h1 {
    font-size: clamp(2.8rem, 12vw, 3.25rem) !important;
    line-height: 1 !important;
  }
  .fresh-hero-grid > div:first-child > p {
    font-size: 1rem !important;
    line-height: 1.62 !important;
  }
  .fresh-note {
    max-width: none !important;
    padding: 22px !important;
    border-radius: 22px !important;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 14px;
    align-items: start;
  }
  .fresh-note > span { grid-row: 1 / 3; font-size: 2rem !important; }
  .fresh-note strong { margin: 0 0 5px !important; font-size: 1.22rem !important; }
  .fresh-note p { font-size: .9rem !important; line-height: 1.55 !important; }
}

/* Browser-verified touch target pass: larger hit areas without visually bloating the chrome. */
@media (max-width:700px) {
  .brand {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .occasion-family-nav a,
  .area-family-nav a {
    min-height: 44px !important;
    padding-top: .58rem;
    padding-bottom: .58rem;
  }
  .breadcrumbs a {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
  }
  .footer-nav a,
  footer a:not(.primary) {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
  main .text-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .faq-links a,
  .related-links a,
  .local-actions a {
    min-height: 44px !important;
    display: flex;
    align-items: center;
  }
}

@media (max-width:700px) {
  .top a[href^="tel:"] {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
  .light-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .quick-links a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: .45rem 0;
  }
}

/* Final CTA geometry: one physical button system across old and new page generations. */
a.primary,
button.primary,
.primary[role="button"] {
  min-height: 51px !important;
  padding: 15px 24px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1.2 !important;
}

/* Mobile footer: preserve every destination, but stop making customers scroll through an 800px wall. */
@media (max-width:700px) {
  footer { padding-top: 32px; }
  footer .footer {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "address order"
      "links links";
    gap: 22px 18px;
  }
  .footer > div:first-child {
    grid-area: address;
    font-size: .84rem;
    line-height: 1.55;
  }
  .footer > div:nth-child(2) {
    grid-area: links;
    padding-top: 18px !important;
    border-top: 1px solid rgba(255,255,255,.10);
    font-size: .84rem;
  }
  .footer > div:last-child {
    grid-area: order;
    padding-top: 0 !important;
    border-top: 0 !important;
    font-size: .84rem;
    line-height: 1.55;
  }
  .footer-nav {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .2rem .8rem;
    margin-top: .65rem;
  }
  .footer-nav a {
    min-height: 36px !important;
    padding: .18rem 0;
    font-size: .82rem;
  }
  .footer > div:last-child a[href^="tel:"] {
    min-height: 36px;
  }
}
@media (max-width:390px) {
  footer .footer { gap: 20px 14px; }
}

/* Last tiny-type cleanup from the live browser audit. */
.hero-card > small,
.footer small,
.chooser-result .eyebrow,
[data-chooser] .eyebrow {
  font-size: .75rem !important;
}

/* Reading rhythm: keep long-form copy comfortable on wide screens. */
.page-hero p,
.section > .wrap > p,
.section-head > p,
.split-head > p,
.faq-intro > p,
.area-intro > p {
  max-width: 64ch;
}

/* Sticky-header-safe in-page navigation. */
main [id] {
  scroll-margin-top: 132px;
}
@media (max-width:700px) {
  main [id] { scroll-margin-top: 108px; }
}

/* Mobile menu must stay physically inside the viewport, not merely be scrollable. */
@media (max-width:1040px) {
  .mobile-menu[open] .mobile-panel {
    max-height: var(--fleur-menu-max-h, calc(100dvh - 90px));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

/* Editorial typography polish: cleaner heading breaks and paragraph rag. */
h1, h2, h3,
.hero-card strong,
.fresh-note strong,
.award strong {
  text-wrap: balance;
}
main p,
main li,
footer,
.trust-strip {
  text-wrap: pretty;
}

/* Helpful-guides family rail. */
.guide-family-nav {
  background: #f4ead6;
  border-bottom: 1px solid #ddcda9;
  color: #2f2a23;
}
.guide-family-nav .wrap {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: .45rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.guide-family-nav .wrap::-webkit-scrollbar { display:none; }
.guide-family-nav span {
  flex:none;
  margin-right:.45rem;
  color:#745019;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.guide-family-nav a {
  flex:none;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  padding:.48rem .78rem;
  border-radius:999px;
  color:#3f392f;
  font-size:.84rem;
  font-weight:800;
  text-decoration:none;
}
.guide-family-nav a:hover,
.guide-family-nav a:focus-visible { background:#fffaf0; color:#15130f; }
.guide-family-nav a[aria-current="page"] {
  background:#15130f;
  color:#f7dfa4;
  box-shadow:0 4px 14px rgba(21,19,15,.12);
}
@media (max-width:700px) {
  .guide-family-nav .wrap { min-height:50px; gap:.3rem; }
  .guide-family-nav span { display:none; }
  .guide-family-nav a { min-height:44px; font-size:.8rem; padding:.58rem .72rem; }
}

/* Whole-site outlier correction: compact the remaining tall two-column heroes on phones. */
@media (max-width:700px) {
  .same-day-hero,
  .card-hero,
  .business-hero {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }
  .same-day-hero .hero-grid,
  .card-hero .hero-grid,
  .business-hero .hero-grid {
    gap: 24px !important;
  }
  .same-day-hero h1,
  .card-hero h1,
  .business-hero h1 {
    font-size: clamp(2.45rem,11vw,3rem) !important;
    line-height: 1 !important;
  }
  .same-day-hero p,
  .card-hero p,
  .business-hero p {
    font-size: .98rem !important;
    line-height: 1.6 !important;
  }
  .same-day-hero aside,
  .card-hero aside,
  .business-hero aside {
    padding: 22px !important;
    border-radius: 22px !important;
    max-width: none !important;
  }
  .same-day-hero aside strong,
  .card-hero aside strong,
  .business-hero aside strong {
    font-size: 1.3rem !important;
    line-height: 1.18 !important;
  }
  .same-day-hero .hero-actions,
  .card-hero .hero-actions,
  .business-hero .hero-actions {
    margin-top: 22px !important;
    gap: 12px !important;
  }
}

/* Balanced wrapping made this unusually long Baton Rouge headline too narrow. */
.br-hero h1 {
  max-width: none !important;
  font-size: clamp(3.2rem,4.4vw,4rem) !important;
  text-wrap: pretty !important;
}
@media (max-width:600px) {
  .br-hero h1 {
    font-size: clamp(2.35rem,10.5vw,2.85rem) !important;
    line-height: 1 !important;
  }
}

/* Protect the two lower-resolution hero photos from full-canvas cover upscaling. */
.faq-hero {
  background-color: #15130f !important;
  background-image:
    linear-gradient(90deg, rgba(15,13,10,.99) 0%, rgba(15,13,10,.96) 48%, rgba(15,13,10,.74) 70%, rgba(15,13,10,.36) 100%),
    url('/images/shop-detail.webp') !important;
  background-position: center, right center !important;
  background-size: cover, auto 100% !important;
  background-repeat: no-repeat !important;
}
.wedding-hero {
  background-color: #15130f !important;
  background-image:
    linear-gradient(90deg, rgba(15,13,10,.99) 0%, rgba(15,13,10,.96) 48%, rgba(15,13,10,.72) 70%, rgba(15,13,10,.30) 100%),
    url('/images/weddings/wedding-bridal-party.webp') !important;
  background-position: center, right center !important;
  background-size: cover, auto 100% !important;
  background-repeat: no-repeat !important;
}
@media (max-width:700px) {
  .faq-hero,
  .wedding-hero {
    background-position: center, 85% center !important;
    background-size: cover, auto 100% !important;
  }
}

/* Keep the home award banner special without delaying the actual homepage message. */
@media (min-width:900px) {
  .brand-banner img { width: min(100%, 780px) !important; }
}

/* Compact mobile award/order strip. */
.top {
  line-height: 1.35;
}
@media (max-width:700px) {
  .top {
    min-height: 42px;
    padding: 6px 12px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    flex-wrap: wrap;
  }
  .top-order { display: none; }
  .top-award { white-space: nowrap; }
  .top a[href^="tel:"] {
    min-height: 30px !important;
    padding: 0 .15rem;
  }
}
@media (max-width:380px) {
  .top { font-size: .72rem !important; gap:.2rem .35rem; }
}

/* Navigation orientation for pages that live under More. */
.services-menu:has(a[aria-current="page"]) > summary {
  color: #e7c46d;
  position: relative;
}
.services-menu:has(a[aria-current="page"]) > summary::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 2px;
  background: #c8a45f;
}
@media (max-width:1040px) {
  .mobile-services:has(a[aria-current="page"]) > strong { color: #f7dfa4; }
}

/* Custom chooser radios need an explicit keyboard-focus treatment. */
.choice-grid input[type="radio"]:focus-visible {
  outline: 3px solid #d7a84d !important;
  outline-offset: 3px !important;
}
.choice-grid label:has(input[type="radio"]:focus-visible) {
  border-color: #9b742d !important;
  box-shadow: 0 0 0 3px rgba(215,168,77,.24);
}

/* Never trade compact chrome for sub-12px readability. */
@media (max-width:380px) {
  .top,
  .top span,
  .top strong,
  .top a { font-size: 12px !important; }
}
.hero-card > small,
.choose-hero aside > span,
[data-chooser] .eyebrow,
.chooser-result .eyebrow { font-size: 12px !important; }

/* Final sub-12px cleanup on homepage badge and mobile dock. */
.story-badge small,
.mobile-dock small {
  font-size: 12px !important;
  line-height: 1.25 !important;
}

/* Homepage photo correction from live screenshots.
   Legacy wide images should not be forced into tall crops or letterboxed as thumbnails. */
@media (min-width:901px) {
  .feature-mosaic {
    grid-template-rows: 215px 215px !important;
    grid-template-columns: 1.45fr .75fr !important;
    gap: 18px !important;
  }
  .mosaic.large {
    min-height: 448px;
  }
}

/* Give service-card photography a real image area instead of a padded postage stamp. */
.service-card {
  grid-template-columns: minmax(190px, 34%) 1fr !important;
  min-height: 240px;
}
.service-card > img {
  object-fit: cover !important;
  object-position: center center !important;
  background: #ede3d2 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 240px !important;
  padding: 0 !important;
}

/* The Everyday Flowers source is a very wide legacy image; bias to the floral center. */
.service-gallery .service-card:first-child > img {
  object-position: 62% center !important;
}

@media (max-width:900px) {
  .service-card {
    grid-template-columns: 150px 1fr !important;
    min-height: 210px;
  }
  .service-card > img { min-height: 210px !important; }
}
@media (max-width:560px) {
  .service-card {
    grid-template-columns: 1fr !important;
  }
  .service-card > img {
    width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
  }
  .service-gallery .service-card:first-child > img {
    object-position: center center !important;
  }
}

/* Screenshot follow-up: keep the legacy Fresh collage closer to its native wide shape. */
@media (min-width:901px) {
  .feature-mosaic {
    grid-template-rows: 190px 190px !important;
  }
  .mosaic.large {
    min-height: 398px !important;
  }
  .mosaic.large > img {
    object-position: 74% 42% !important;
  }
}

/* More is a real nav item; never let inherited light-surface color make it disappear. */
.site-header .services-menu > summary {
  color: #f4ead6 !important;
}
.site-header .services-menu > summary:hover,
.site-header .services-menu > summary:focus-visible {
  color: #f7dfa4 !important;
}
.site-header .services-menu:has(a[aria-current="page"]) > summary {
  color: #e7c46d !important;
}

/* Weddings: real portfolio using Kathy's new photo set. */
.wedding-portfolio { background:#fffaf0; }
.wedding-portfolio-head {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:clamp(28px,5vw,72px);
  align-items:end;
  margin-bottom:34px;
}
.wedding-portfolio-head h2 { margin-bottom:0; }
.wedding-portfolio-head p { margin:0; max-width:620px; }
.wedding-photo-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:dense;
  gap:18px;
}
.wedding-photo {
  grid-column:span 4;
  margin:0;
  background:#17140f;
  border-radius:24px;
  overflow:hidden;
  position:relative;
  min-height:360px;
  box-shadow:0 12px 32px rgba(32,22,10,.10);
}
.wedding-photo-feature { grid-column:span 8; min-height:430px; }
.wedding-photo-tall { grid-row:span 2; min-height:520px; }
.wedding-photo img {
  width:100%; height:100%; min-height:inherit; display:block;
  object-fit:cover; object-position:center;
  transition:transform .45s ease;
}
.wedding-photo:hover img { transform:scale(1.018); }
.wedding-photo:after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(18,13,10,.82));
  pointer-events:none;
}
.wedding-photo figcaption {
  position:absolute; z-index:1; left:20px; right:20px; bottom:18px;
  color:#fff8ea; font-weight:750; line-height:1.35;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.wedding-intro figure img { object-fit:cover; aspect-ratio:1/1; width:100%; }
.process-photo img { object-fit:cover !important; object-position:center 42% !important; }

@media(max-width:900px){
  .wedding-portfolio-head { grid-template-columns:1fr; gap:14px; }
  .wedding-photo,.wedding-photo-feature { grid-column:span 6; min-height:340px; }
  .wedding-photo-tall { grid-row:auto; min-height:420px; }
}
@media(max-width:620px){
  .wedding-photo-grid { gap:14px; }
  .wedding-photo,.wedding-photo-feature,.wedding-photo-tall { grid-column:1/-1; min-height:360px; }
  .wedding-photo-feature { min-height:300px; }
  .wedding-photo figcaption { left:16px; right:16px; bottom:15px; }
}

/* New wedding hero: real bridal-party photography. */
.wedding-hero {
  background:
    linear-gradient(90deg,rgba(15,13,10,.98) 0%,rgba(15,13,10,.91) 42%,rgba(15,13,10,.58) 68%,rgba(15,13,10,.18) 100%),
    url('/images/weddings/wedding-bridal-party.webp') center 42%/cover no-repeat !important;
}
@media(max-width:700px){
  .wedding-hero {
    background:
      linear-gradient(180deg,rgba(15,13,10,.83),rgba(15,13,10,.72)),
      url('/images/weddings/wedding-bridal-party.webp') 51% center/cover no-repeat !important;
  }
}

/* Homepage service cards: clean photography, no baked-in promotional text. */
.service-gallery .service-card:nth-child(1) img { object-position:center 44% !important; }
.service-gallery .service-card:nth-child(2) img { object-position:center 47% !important; }
.service-gallery .service-card:nth-child(3) img { object-position:center 40% !important; }
.service-gallery .service-card:nth-child(4) img { object-position:center 34% !important; }

/* Homepage upper mosaic: clean photos with tuned crops. */
.feature-mosaic .mosaic.large img { object-position:center 42% !important; }
.feature-mosaic .mosaic[href="/weddings/"] img { object-position:center 48% !important; }
.feature-mosaic .mosaic[href="/sympathy/"] img { object-position:center 39% !important; }

/* Flowers page: showcase Kathy's clean recent floral photography. */
.flower-hero {
  background:
    linear-gradient(90deg,rgba(41,14,36,.95),rgba(52,22,47,.55)),
    url('/images/weddings/wedding-colorful-bouquet.webp') center 48%/cover no-repeat !important;
}
.moment-grid .moment:nth-child(1) img { object-position:center 48% !important; }
.moment-grid .moment:nth-child(2) img { object-position:center 43% !important; }
.moment-grid .moment:nth-child(3) img { object-position:center 40% !important; }

/* Weddings gallery balance: keep portrait work prominent without an oversized vertical canyon. */
@media (min-width:901px){
  .wedding-photo-tall { grid-row:auto !important; min-height:520px !important; }
}
@media (min-width:901px){
  .wedding-photo-tall { height:520px !important; min-height:520px !important; }
}

/* Delivery-area city maps. These are reference maps, not delivery boundaries. */
.city-map-overview { background:#fffdf8; }
.city-map-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.city-map-card {
  overflow:hidden;
  background:#fff;
  border:1px solid #e3d4b8;
  border-radius:26px;
  box-shadow:0 12px 32px rgba(40,30,15,.08);
}
.city-map-frame {
  position:relative;
  width:100%;
  min-height:260px;
  background:#ece6d9;
  overflow:hidden;
}
.city-map-frame iframe {
  display:block;
  width:100%;
  height:100%;
  min-height:260px;
  border:0;
}
.city-map-copy { padding:24px; }
.city-map-copy > span {
  display:block;
  color:#8b6323;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.city-map-copy h3 { margin:8px 0 10px; }
.city-map-copy p { margin:0 0 14px; color:#665f54; }
.city-map-copy a { font-weight:850; }
.map-boundary-note {
  margin:24px 0 0;
  padding:18px 20px;
  border-left:4px solid #c79a3c;
  background:#f8efdc;
  color:#51483a;
}
.city-map-feature {
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  align-items:center;
  gap:clamp(30px,6vw,78px);
}
.city-map-feature .city-map-copy { padding:0; }
.city-map-frame-large {
  min-height:420px;
  border:1px solid #d9c9aa;
  border-radius:28px;
  box-shadow:0 18px 42px rgba(38,29,16,.10);
}
.city-map-frame-large iframe { min-height:420px; }
@media(max-width:900px){
  .city-map-grid { grid-template-columns:1fr; }
  .city-map-card { display:grid; grid-template-columns:minmax(220px,.8fr) 1.2fr; }
  .city-map-frame,.city-map-frame iframe { min-height:240px; }
  .city-map-feature { grid-template-columns:1fr; gap:24px; }
  .city-map-frame-large,.city-map-frame-large iframe { min-height:360px; }
}
@media(max-width:620px){
  .city-map-card { display:block; }
  .city-map-frame,.city-map-frame iframe { min-height:230px; }
  .city-map-copy { padding:20px; }
  .city-map-frame-large,.city-map-frame-large iframe { min-height:320px; border-radius:20px; }
}

/* Delivery Areas cards use city maps instead of promotional photography. */
.area-card .area-map {
  min-height:320px;
  background:#ece6d9;
  overflow:hidden;
}
.area-card .area-map iframe {
  display:block;
  width:100%;
  height:320px;
  border:0;
  pointer-events:none;
}
@media(max-width:900px){
  .area-card .area-map,
  .area-card .area-map iframe { min-height:260px; height:260px; }
}
@media(max-width:620px){
  .area-card .area-map,
  .area-card .area-map iframe { min-height:240px; height:240px; }
}

/* Kathy Facebook photography: real cemetery work on the Sympathy page. */
.sympathy-hero { background-position:center 42% !important; }
.sympathy-intro .image-frame img { max-height:640px; object-fit:cover !important; object-position:center 46% !important; }
