/* ============================================================
   BUTTON UTILITIES
   ============================================================ */
.btn--block { display: flex; width: 100%; justify-content: center; }
.btn--mt { margin-top: 0.75rem; }

/* ============================================================
   SUBSCRIBE BAR (above footer)
   ============================================================ */
.subscribe-bar {
  background: linear-gradient(135deg, #0f2040 0%, #1a3a6e 50%, #0f2040 100%);
  border-top: 3px solid var(--accent, #f5c500);
  padding: 1rem 1.5rem 0.75rem;
}
.subscribe-bar__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}
.subscribe-bar__icon { width: 32px; height: 32px; color: var(--accent, #f5c500); flex-shrink: 0; }
.subscribe-bar__copy { display: flex; align-items: center; gap: 1rem; flex: 1; min-width: 220px; padding-bottom: 22px; }
.subscribe-bar__heading { display: block; color: #ffffff; font-size: 1.1rem; font-weight: 700; font-family: var(--font-sans); line-height: 1.3; margin-bottom: 0.2rem; }
.subscribe-bar__sub { display: block; color: #99a1af; font-size: 0.875rem; font-family: var(--font-sans); }
.subscribe-bar__form { flex: 1; min-width: 280px; display: flex; flex-direction: column; gap: 0; margin: 0; }
.subscribe-bar__fields { display: flex; gap: 0.5rem; align-items: center; }
.subscribe-bar__input {
  flex: 1; height: 44px; padding: 0 1rem;
  border: 1.5px solid rgba(255,255,255,0.25);
  border-radius: 6px; background: #ffffff !important;
  color: #0f2040 !important; font-size: 0.9rem; font-family: var(--font-sans);
  transition: border-color 0.2s, background 0.2s; outline: none;
}
.subscribe-bar__input::placeholder { color: #6a7282; }
.subscribe-bar__input:focus { border-color: var(--accent, #f5c500); }
.subscribe-bar__btn {
  height: 44px; padding: 0 1.5rem;
  background: #ffffff; color: #0f2040;
  border: 2px solid rgba(255,255,255,0.9);
  border-radius: 6px; font-weight: 700; font-size: 0.875rem;
  letter-spacing: 0.04em; text-transform: uppercase;
  font-family: var(--font-sans); cursor: pointer;
  display: flex; align-items: center; white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
}
.subscribe-bar__btn:hover {
  background: #e8f1fb;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
.subscribe-bar__privacy { margin: 0.35rem 0 0; font-size: 0.75rem; color: #6a7282; font-family: var(--font-sans); }
.subscribe-bar__privacy-link { color: #99a1af; text-decoration: underline; }
.subscribe-bar__privacy-link:hover { color: #ffffff; }
@media (max-width: 768px) {
  .subscribe-bar__inner { flex-direction: column; align-items: stretch; gap: 1.25rem; }
  .subscribe-bar__copy  { flex-direction: column; align-items: flex-start; gap: 0.5rem; padding-bottom: 0; }
  .subscribe-bar__fields { flex-direction: column; }
  .subscribe-bar__input, .subscribe-bar__btn { width: 100%; }
}

/* ============================================================
   FOOTER: Second phone + Hawaii note
   ============================================================ */
.footer-contact__phones { display: flex; flex-direction: column; gap: 0.2rem; }
.footer-contact__link--secondary { font-size: 0.85rem; opacity: 0.8; }
.footer-contact__item--hawaii { border-top: 1px solid rgba(255,255,255,0.06); padding-top: 0.75rem; margin-top: 0.25rem; }
.footer-contact__text--hawaii { color: #99a1af; font-size: 0.82rem; line-height: 1.5; }
.footer-contact__text--hawaii strong { color: var(--accent, #f5c500); }

/* ============================================================
   FLEXIBLE CONTENT — Shared base
   ============================================================ */
/* ── Layout Resets ───────────────────────────────────────────────────────── */
.fc-page-wrap { background: #ffffff; display: flow-root; }
.site-main--inner { background: #ffffff; display: flow-root; }
.fc-section { padding: 2.5rem 1.5rem; background: #ffffff !important; display: flow-root; }
.fc-page-wrap > .fc-section:first-child { padding-top: 2.5rem !important; }

/* Section-header is a title-only block — give it minimal padding */
.fc-section-header { padding-top: 1.5rem !important; padding-bottom: 0.5rem !important; }
.fc-container { max-width: 1200px; margin: 0 auto; }

/* Scope user-requested padding removal specifically to page 11829 */
.page-id-11829 .fc-section { padding: 0 1.5rem; }
.page-id-11829 .fc-section-header { padding-top: 0 !important; }
.fc-section__heading {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 700; color: var(--primary);
  margin-bottom: 1.5rem; line-height: 1.25;
}
.fc-section-header--center .fc-section-header__heading,
.fc-section-header--center .fc-section-header__sub {
  text-align: center;
}
.fc-section-header__heading { margin-top: 0 !important; }
.fc-wysiwyg { line-height: 1.75; color: var(--text); font-family: var(--font-sans); }
.fc-wysiwyg h2, .fc-wysiwyg h3, .fc-wysiwyg h4 { color: var(--primary); margin: 1.5rem 0 0.75rem; font-family: var(--font-serif); }
/* Match live theme h2 size (34px) so in-content headings aren't undersized */
.fc-wysiwyg h2 { font-size: 2.125rem; }
.fc-wysiwyg p { margin-bottom: 1rem; }
.fc-wysiwyg a { color: var(--link-color); text-decoration: underline; }
.fc-wysiwyg ul, .fc-wysiwyg ol { list-style: revert; padding-left: 1.5rem; margin-bottom: 1rem; }
.fc-wysiwyg li { margin-bottom: 0.35rem; }
.fc-wysiwyg img { max-width: 100%; height: auto; border-radius: 6px; }
/* Reviews widget (Trustindex) spacing */
.fc-wysiwyg [data-src*="trustindex"],
.fc-wysiwyg [data-bglz][data-src] { display: block; margin-top: 2rem; margin-bottom: 1rem; min-height: 40px; }

.fc-wysiwyg table {
  display: table;      /* override .site-main table { display: block } */
  overflow-x: visible; /* prevent the grey-spacer-on-right bug */
  width: 100%;
  max-width: 100%;     /* inline max-width styles on the <table> still apply */
  border-collapse: collapse;
  margin-bottom: 1rem;
  background-color: transparent; /* prevent browser grey fill in unused block space */
}
.fc-wysiwyg th, .fc-wysiwyg td { border: 1px solid #e5e7eb; padding: 0.6rem 0.75rem; text-align: left; color: inherit; }
.fc-wysiwyg table tbody tr:nth-child(even) td,
.fc-wysiwyg table tbody tr:nth-child(odd) td,
.fc-wysiwyg table tbody td {
    background-color: transparent;
}

/* ------------------------------------------------------------------
   GUTENBERG BLOCK + LEGACY IMAGE CENTERING
   WordPress strips <center> tags through the_content filters, so
   any <center><figure> in raw post content becomes a bare figure
   directly inside .fc-wysiwyg with no centering ancestor.
   Solution: center all .wp-block-image figures by default (matching
   the block editor default behaviour), and handle all other patterns.
   ------------------------------------------------------------------ */

/* All Gutenberg image blocks — center by default (editor default) */
.fc-wysiwyg .wp-block-image,
.inner-page-content .wp-block-image {
  display: table;        /* shrink-wraps to image width */
  margin-left: auto;
  margin-right: auto;
}

/* Explicitly left or right aligned blocks — override */
.fc-wysiwyg .wp-block-image.alignleft,
.inner-page-content .wp-block-image.alignleft {
  display: block;
  margin-left: 0;
  margin-right: 1.5rem;
  float: left;
}
.fc-wysiwyg .wp-block-image.alignright,
.inner-page-content .wp-block-image.alignright {
  display: block;
  margin-left: 1.5rem;
  margin-right: 0;
  float: right;
}

/* .aligncenter class on figure or img */
.fc-wysiwyg .aligncenter,
.inner-page-content .aligncenter {
  display: table;
  margin-left: auto;
  margin-right: auto;
}
.fc-wysiwyg img.aligncenter,
.inner-page-content img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* <center> wrapping iframes (YouTube embeds) — WP keeps <center> for iframes */
.fc-wysiwyg center iframe,
.inner-page-content center iframe {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* <p style="text-align:center"> or <p align="center"> containing img */
.fc-wysiwyg p[style*="text-align: center"] img,
.fc-wysiwyg p[style*="text-align:center"] img,
.inner-page-content p[style*="text-align: center"] img,
.inner-page-content p[style*="text-align:center"] img,
.fc-wysiwyg p[align="center"] img,
.inner-page-content p[align="center"] img {
  display: inline;       /* keep inline so text-align:center on <p> works */
}

/* BuyNow button GIF — centers as a standalone paragraph image.
   Classic editor wraps these in <p><a><img ...BuySafetyNow...></a></p>
   without any alignment class, so we target the filename. */
.fc-wysiwyg p img[src*="BuySafetyNow"],
.inner-page-content p img[src*="BuySafetyNow"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* General: lone <img> directly inside a <p> with no alignment class —
   center it (matches classic editor "centered image" intent on legacy pages) */
.fc-wysiwyg p > img:only-child,
.inner-page-content p > img:only-child {
  display: block;
  margin-left: auto;
  margin-right: auto;
}


.fc-bg--white { background: #ffffff; }
.fc-bg--light { background: #f8f9fa; }
.fc-bg--blue  { background: var(--primary); }
.fc-bg--blue .fc-section__heading, .fc-bg--blue .fc-wysiwyg,
.fc-bg--blue .fc-wysiwyg h2, .fc-bg--blue .fc-wysiwyg h3 { color: #ffffff; }
.fc-bg--blue .fc-wysiwyg a { color: var(--accent, #f5c500); }

/* Smart Padding Collapse: If two identical backgrounds touch, remove the double gap */
.section--white + .section--white,
.section--white + .fc-bg--white,
.fc-bg--white + .section--white,
.fc-bg--white + .fc-bg--white,

.section--light + .section--light,
.section--light + .fc-bg--light,
.fc-bg--light + .section--light,
.fc-bg--light + .fc-bg--light,

.section--blue + .section--blue,
.section--blue + .fc-bg--blue,
.fc-bg--blue + .section--blue,
.fc-bg--blue + .fc-bg--blue {
  padding-top: 0 !important;
}

/* Base Padding for Gutenberg Content Blocks */
.content-section {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.section--padding-lg {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.section--padding-none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ============================================================
   TEXT BLOCK
   ============================================================ */
.fc-text-block--center .fc-section__heading,
.fc-text-block--center .fc-wysiwyg { text-align: center; }

/* ============================================================
   IMAGE + TEXT
   ============================================================ */
.fc-image-text__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.fc-image-text--right .fc-image-text__grid { direction: rtl; }
.fc-image-text--right .fc-image-text__grid > * { direction: ltr; }
.fc-image-text__img { width: 100%; height: auto; border-radius: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.12); display: block; }
.fc-image-text__btn { margin-top: 1.5rem; }
@media (max-width: 768px) { .fc-image-text__grid { grid-template-columns: 1fr; direction: ltr; } }

/* ============================================================
   VIDEO EMBED
   ============================================================ */
.fc-video-embed__wrapper { max-width: 800px; }
.fc-video-embed--center .fc-video-embed__wrapper { margin: 0 auto; }
.fc-video-embed--center .fc-section__heading { text-align: center; }
.fc-video-embed__ratio { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 10px; background: transparent; }
.fc-video-embed__ratio iframe, .fc-video-embed__ratio embed, .fc-video-embed__ratio object { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fc-video-embed__caption { margin-top: 0.75rem; text-align: center; font-size: 0.875rem; color: #6a7282; font-style: italic; }

/* ============================================================
   CTA BANNER
   ============================================================ */
.fc-cta-banner { padding: 3rem 1.5rem; }
.fc-cta-banner--blue  { background: var(--primary); }
.fc-cta-banner--dark  { background: #071428; }
.fc-cta-banner--accent { background: var(--accent, #f5c500); }
.fc-cta-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.fc-cta-banner__heading { font-family: var(--font-serif); font-size: clamp(1.25rem, 2.5vw, 1.875rem); color: #ffffff; font-weight: 700; margin-bottom: 0.25rem; }
.fc-cta-banner--accent .fc-cta-banner__heading { color: var(--primary); }
.fc-cta-banner__sub { color: rgba(255,255,255,0.8); font-size: 0.95rem; }
.fc-cta-banner--accent .fc-cta-banner__sub { color: var(--primary); opacity: 0.8; }
.fc-cta-banner__actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; flex-shrink: 0; }
.fc-cta-banner__btn { white-space: nowrap; }
.fc-cta-banner--blue .fc-cta-banner__btn, .fc-cta-banner--dark .fc-cta-banner__btn { background: var(--accent, #f5c500); color: var(--primary); }
.fc-cta-banner--accent .fc-cta-banner__btn { background: var(--primary); color: #fff; }
.fc-cta-banner__phone { display: flex; align-items: center; gap: 0.4rem; color: #ffffff; font-weight: 600; font-size: 1rem; text-decoration: none; transition: opacity 0.2s; }
.fc-cta-banner__phone:hover { opacity: 0.8; }
@media (max-width: 768px) { .fc-cta-banner__inner { flex-direction: column; text-align: center; } .fc-cta-banner__actions { justify-content: center; } }

/* ============================================================
   ACCORDION / FAQ
   ============================================================ */
.fc-accordion__list { display: flex; flex-direction: column; }
.fc-accordion__item { margin-bottom: 10px; border: 1px solid #e2e2e2; background: #eee; }
.fc-accordion__trigger { width: 100%; display: flex; align-items: center; justify-content: flex-start; gap: 10px; padding: 12px 15px; background: none; border: none; cursor: pointer; text-align: left; font-family: var(--font-sans); }
.fc-accordion__question { font-size: 16px; font-weight: 500; color: #444; line-height: 1.4; margin: 0; }
.fc-accordion__icon { width: 16px; height: 16px; color: #444; flex-shrink: 0; }
.fc-accordion__item.is-open .fc-accordion__icon line:first-child { display: none; }
.fc-accordion__panel { background: #fff; border-top: 1px solid #e2e2e2; }
.fc-accordion__answer { padding: 15px; color: #444; }

/* ============================================================
   TWO COLUMN
   ============================================================ */
.fc-two-col__grid { display: grid; gap: 2.5rem; align-items: start; }
.fc-two-col--50-50 .fc-two-col__grid { grid-template-columns: 1fr 1fr; }
.fc-two-col--60-40 .fc-two-col__grid { grid-template-columns: 3fr 2fr; }
.fc-two-col--40-60 .fc-two-col__grid { grid-template-columns: 2fr 3fr; }
@media (max-width: 768px) {
  .fc-two-col--50-50 .fc-two-col__grid,
  .fc-two-col--60-40 .fc-two-col__grid,
  .fc-two-col--40-60 .fc-two-col__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   QUOTE / CALLOUT
   ============================================================ */
.fc-quote { text-align: center; }
.fc-quote--light { background: #f8f9fa; }
.fc-quote--blue  { background: var(--primary); }
.fc-quote__block { max-width: 720px; margin: 0 auto; }
.fc-quote__mark  { color: var(--accent, #f5c500); margin: 0 auto 1rem; display: block; }
.fc-quote__text  { font-family: var(--font-serif); font-size: clamp(1.15rem, 2.5vw, 1.5rem); font-style: italic; color: var(--primary); line-height: 1.6; margin-bottom: 1rem; }
.fc-quote--blue .fc-quote__text  { color: #ffffff; }
.fc-quote__attribution { font-size: 0.9rem; color: #6a7282; font-family: var(--font-sans); }
.fc-quote--blue .fc-quote__attribution { color: rgba(255,255,255,0.65); }

/* ============================================================
   CONTACT BLOCK
   ============================================================ */
.fc-contact-block { background: #f8f9fa; }
.fc-contact-block__intro { margin-bottom: 1.5rem; }
.fc-contact-block__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.875rem; }
.fc-contact-block__item { display: flex; align-items: flex-start; gap: 0.75rem; color: var(--text); font-family: var(--font-sans); }
.fc-contact-block__item svg { color: var(--primary); flex-shrink: 0; margin-top: 2px; }
.fc-contact-block__link { color: var(--link-color); text-decoration: underline; }
.fc-contact-block__address { font-style: normal; line-height: 1.5; }

/* ============================================================
   RAW HTML SECTION
   ============================================================ */
.fc-raw-html { padding: 2rem 1.5rem; background: #ffffff; }
.fc-raw-html > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
/* Prevent grey/black video placeholder boxes when lazy-loading blank.mp4 */
.fc-raw-html video { background: transparent; }

/* ============================================================
   SP EASY ACCORDION — PLUGIN COMPATIBILITY
   The Easy Accordion Free plugin is not installed on this server.
   Its shortcode HTML is saved directly in post_content and renders,
   but the plugin's CSS (icon font) and JS (collapse toggle) are absent.
   These rules replicate the plugin's behavior so any page with
   SP Easy Accordion HTML renders correctly without the plugin installed.
   ============================================================ */

/* Collapse/expand mechanism — the plugin uses .show to reveal panels */
.spcollapse:not(.show) { display: none !important; }
.spcollapsing { height: 0 !important; overflow: hidden !important; transition: height 0.3s ease !important; }

/* Accordion container */
.sp-easy-accordion { margin: 0; padding: 0; }

/* Each item card */
.sp-easy-accordion > .sp-ea-single {
  margin-bottom: 8px;
  border: 1px solid #d8d8d8;
  border-radius: 4px;
  background: #f0f0f0;
  overflow: hidden;
}

/* Question header row */
.sp-easy-accordion > .sp-ea-single > .ea-header > a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 14px 18px;
  color: #333 !important;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none !important;
  cursor: pointer;
  line-height: 1.4;
}
.sp-easy-accordion > .sp-ea-single > .ea-header > a:hover { color: var(--primary) !important; }

/* Icon replacement — fontello font is unavailable so use CSS characters */
.sp-easy-accordion .ea-expand-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: 20px;
  font-style: normal;
  font-weight: 300;
  line-height: 1;
  flex-shrink: 0;
  color: #555;
}
.sp-easy-accordion .eap-icon-ea-expand-plus::before  { content: '+'; }
.sp-easy-accordion .eap-icon-ea-expand-minus::before { content: '−'; }

/* Answer body */
.sp-easy-accordion .ea-body {
  padding: 12px 18px 18px;
  background: #fff;
  color: #444;
  font-size: 0.9375rem;
  line-height: 1.7;
}
.sp-easy-accordion .ea-body p:last-child { margin-bottom: 0; }
.sp-easy-accordion .ea-body a { color: var(--link-color, #0066cc); }

/* Padding Overrides */
.fc-pad--normal      { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; }
.fc-pad--none        { padding-top: 0 !important; padding-bottom: 0 !important; display: block !important; }
.fc-pad--none .fc-wysiwyg > *:last-child { margin-bottom: 0; }
.fc-pad--top-none    { padding-top: 0 !important; padding-bottom: 1.25rem !important; }
.fc-pad--bottom-none { padding-top: 1.25rem !important; padding-bottom: 0 !important; }
.fc-pad--small       { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.fc-pad--bottom      { padding-top: 0 !important; padding-bottom: 1.25rem !important; }

/* Added Aspect Ratios */
.fc-ratio--9-16 { padding-bottom: 177.77%; position: relative; }
.fc-ratio--16-9 { padding-bottom: 56.25%; position: relative; }
.fc-ratio--4-3 { padding-bottom: 75%; position: relative; }
.fc-ratio--9-16 iframe, .fc-ratio--16-9 iframe, .fc-ratio--4-3 iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* Restrict vertical video width */
.fc-video-embed__wrapper { max-width: 800px; margin: 0 auto; }
.fc-video-embed__wrapper--9-16 { max-width: 315px; margin: 0 auto; }


/* Fix collapsing margins on zero-padding blocks */
.fc-pad--none .fc-wysiwyg > *:last-child { margin-bottom: 0; }
