/* Shared presentation and accessible controls. Keep page layouts and brand artwork intact. */
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700;800&display=swap');
:root {
  --bfb-font-body: 'Open Sans', Arial, sans-serif;
  --bfb-font-heading: Georgia, 'Times New Roman', serif;
}
body { font-family: var(--bfb-font-body) !important; }
body h1, body h2:not(.custom-h2), body h3:not(.custom-h3) {
  font-family: var(--bfb-font-heading) !important;
}
input, select, textarea, button { font-family: var(--bfb-font-body); }
:where(a, button, input, select, textarea, summary, [role="button"]):focus-visible {
  outline: 3px solid #862633;
  outline-offset: 3px;
}
@media (max-width: 767px) {
  .enhanced-footer-form .enhanced-textbox { font-size: 16px; min-height: 44px; }
}

/* Shared brand typography. Opt in one reviewed page at a time with bfb-brand. */

/* Two text fonts, with large titles and readable supporting copy. */
body.bfb-brand { font-family: 'Open Sans', Arial, sans-serif !important; }
body.bfb-brand h1,
body.bfb-brand h2,
body.bfb-brand h3 {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-weight: 400;
  line-height: 1.18;
}
body.bfb-brand h1,
body.bfb-brand h2 {
  font-size: clamp(32px, 4.2vw, 50px);
}
body.bfb-brand h3 { font-size: 26px; }
body.bfb-brand .area-heading { max-width: 1060px; margin: 0 auto; }
body.bfb-brand .area-heading h1 { margin-bottom: 24px; }
body.bfb-brand .area-heading .bfb-home-intro-copy,
body.bfb-brand .bfb-home-welcome-note {
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
  max-width: 850px;
  margin: 0 auto 18px;
  text-align: center;
}
body.bfb-brand .bfb-home-welcome-note { margin-bottom: 32px; }
body.bfb-brand .bfb-home-faq-title { margin: 0 0 28px; text-align: center; }
body.bfb-brand .bfb-home-quiz-title {
  font-size: clamp(26px, 3vw, 36px);
  max-width: 900px;
  margin: 36px auto 24px;
}
body.bfb-brand .enhanced-footer h3,
body.bfb-brand .enhanced-footer h4 {
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}
body.bfb-brand .enhanced-footer .footer-location h4 { font-size: 14px; }
@media (max-width: 767px) {
  body.bfb-brand .area-heading { padding-left: 16px; padding-right: 16px; }
  body.bfb-brand .area-heading .bfb-home-intro-copy,
  body.bfb-brand .bfb-home-welcome-note { font-size: 16px; }
  body.bfb-brand h3 { font-size: 24px; }
  body.bfb-brand .enhanced-footer h3 { font-size: 16px; }
}

body.bfb-brand .bfb-hero h1 { font-family: var(--bfb-font-heading) !important; }
body.bfb-brand .bfb-hero-sub { font-family: var(--bfb-font-body) !important; font-size: clamp(18px, 2vw, 24px); line-height: 1.5; }
body.bfb-brand h1 a, body.bfb-brand h2 a, body.bfb-brand h3 a { font-family: inherit !important; }

@media (min-width: 768px) {
  body.bfb-brand .header .appointment-button a.btn-default { position: relative; overflow: hidden; isolation: isolate; animation: bfb-booking-glow 4s ease-in-out infinite; }
  body.bfb-brand .header .appointment-button a.btn-default::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 25%, rgba(245,170,115,.4) 50%, transparent 75%); transform: translateX(-150%); animation: bfb-booking-shimmer 5s ease-in-out infinite; }
}

/* Animate the fixed booking button on both desktop and mobile. */
@media (min-width: 0px) {
  body.bfb-brand .appointment-button.floating-cta a.btn-default { position: relative; overflow: hidden; isolation: isolate; animation: bfb-booking-glow 4s ease-in-out infinite; }
  body.bfb-brand .appointment-button.floating-cta a.btn-default::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 25%, rgba(245,170,115,.4) 50%, transparent 75%); transform: translateX(-150%); animation: bfb-booking-shimmer 5s ease-in-out infinite; }
}

/* Decorative movement repeats gently without moving or resizing the tap target. */
@keyframes bfb-booking-glow { 0%, 100% { box-shadow: 0 0 8px 2px rgba(134,38,51,.32), 0 0 16px rgba(184,112,82,.16), inset 0 0 0 rgba(255,215,190,0); } 50% { box-shadow: 0 0 18px 5px rgba(134,38,51,.66), 0 0 30px 8px rgba(184,112,82,.32), inset 0 0 16px rgba(245,170,115,.12); } }
@keyframes bfb-booking-shimmer { 0%, 8% { transform: translateX(-150%); } 88%, 100% { transform: translateX(150%); } }
@media (prefers-reduced-motion: reduce) {
  body.bfb-brand .header .appointment-button a.btn-default,
  body.bfb-brand .appointment-button.floating-cta a.btn-default { animation: none; }
  body.bfb-brand .header .appointment-button a.btn-default::after,
  body.bfb-brand .appointment-button.floating-cta a.btn-default::after { animation: none; content: none; }
}

/* Category-page refinements: aligned designer cards and readable supporting text. */
body.bfb-brand:not(.bfb-home) .tab-internal { align-items: flex-start; row-gap: 24px; }
body.bfb-brand:not(.bfb-home) .tab3 .tab-pic img { display: block; width: 228px; max-width: 100%; height: auto; aspect-ratio: 228 / 340; object-fit: contain; }
body.bfb-brand:not(.bfb-home) .tab3 h3 { font-size: 24px; line-height: 1.2; min-height: 2.4em; }
body.bfb-brand:not(.bfb-home) h2.pagetitle { font-size: clamp(28px, 3vw, 38px); line-height: 1.3; max-width: 1120px; margin: 38px auto 24px; padding: 0 18px; }
body.bfb-brand:not(.bfb-home) p.homepagebodycenter { font-size: 18px; line-height: 1.75; max-width: 1000px; margin: 0 auto 32px; padding: 0 20px; }
body.bfb-brand .bfb-seo-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; grid-auto-rows: 1fr; max-width: 1120px; margin: 24px auto 0; }
body.bfb-brand .bfb-seo-links a { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; min-height: 68px; padding: 12px 16px; border: 1px solid #e6d2cb; border-radius: 3px; background: #fdf8f5; color: #7b1f2e !important; font-size: 13px; line-height: 1.5; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; text-align: center; text-decoration: none; }
body.bfb-brand .bfb-seo-links a:hover { background: #f5e8e2; border-color: #862633; }
@media (max-width: 991px) { body.bfb-brand .bfb-seo-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.bfb-brand .bfb-seo-links { grid-template-columns: 1fr; } body.bfb-brand .bfb-seo-links a { min-height: 64px; } body.bfb-brand:not(.bfb-home) p.homepagebodycenter { font-size: 17px; } }

/* Store pages use the same body font as the main category pages. */
body.bfb-brand .bfb-local-page { font-family: var(--bfb-font-body); }

/* Explicit line heights prevent wrapped FAQ questions from overlapping. */
body.bfb-brand .bfb-local-faq summary, body.bfb-brand details summary, body.bfb-sale .faq summary { line-height: 1.4; }
body.bfb-brand .bfb-local-faq p, body.bfb-sale .faq p { line-height: 1.75; }
@media (max-width: 767px) { body.bfb-brand .bfb-local-faq summary, body.bfb-sale .faq summary { font-size: 21px; padding-top: 18px; padding-bottom: 18px; } }
/* Standalone sale pages retain their own dimensions and layout. */
body.bfb-sale .site-header .btn-header, body.bfb-sale .mobile-sticky .btn { position: relative; overflow: hidden; isolation: isolate; animation: bfb-booking-glow 4s ease-in-out infinite; }
body.bfb-sale .site-header .btn-header::after, body.bfb-sale .mobile-sticky .btn::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 25%, rgba(245,170,115,.4) 50%, transparent 75%); transform: translateX(-150%); animation: bfb-booking-shimmer 5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { body.bfb-sale .site-header .btn-header, body.bfb-sale .mobile-sticky .btn { animation: none; } body.bfb-sale .site-header .btn-header::after, body.bfb-sale .mobile-sticky .btn::after { content: none; animation: none; } }
/* Keep long location names within narrow sale-page cards and headings. */
body.bfb-sale .locations > * { min-width: 0; }
body.bfb-sale .location h3, body.bfb-sale .hero h1 { overflow-wrap: anywhere; }
body.bfb-brand .bfb-about .ab-signature { font-family: var(--bfb-font-heading); font-style: italic; }
body.bfb-sale .site-header .btn-header-mobile { position: relative; overflow: hidden; isolation: isolate; animation: bfb-booking-glow 4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { body.bfb-sale .site-header .btn-header-mobile { animation: none; } }

body.bfb-sale .hero-sub { overflow-wrap: anywhere; }
body.bfb-brand h2.bfb-tuxedo-offer-copy { font-family: var(--bfb-font-body) !important; font-size: 18px; line-height: 1.75; font-weight: 400; max-width: 1000px; margin: 24px auto 32px; padding: 0 20px; }
body.bfb-sale .section-head h2 { overflow-wrap: anywhere; }
