/*
Theme Name: GatorGuard
Template: generatepress
Description: GatorGuard Concrete Coatings child theme. Replicates the Duda site design: Republica Minor 2.0 display font, Poppins body, GatorGuard green palette.
Version: 1.0.0
Author: BlueGlass Insights
*/

@font-face {
  font-family: 'Republica Minor 2.0';
  src: url('fonts/Republica+Minor+2.0-fb3d_400.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins Regular';
  src: url('fonts/Poppins+Regular-afa2_400.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins Bold';
  src: url('fonts/Poppins+Bold-ba90_400.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

:root {
  --gg-green: #55b500;
  --gg-green-dark: #3c8c03;
  --gg-green-deep: #044c07;
  --gg-orange: #ff5c14;
  --gg-black: #0d0d0d;
  --gg-gray-light: #f7f7f7;
  --gg-gray-mid: #d1d1d1;
  --gg-gray-text: #6d6d6d;
  --gg-white: #ffffff;
}

body {
  font-family: 'Poppins Regular', Poppins, sans-serif;
  color: var(--gg-black);
}

h1, h2, h3 {
  font-family: 'Republica Minor 2.0', 'Poppins Bold', sans-serif;
}

h4, h5, h6, .gg-subhead {
  font-family: 'Poppins Bold', Poppins, sans-serif;
}

.gg-btn,
.wp-block-button__link {
  background: var(--gg-green);
  color: var(--gg-white);
  font-family: 'Poppins Bold', sans-serif;
  border-radius: 6px;
  transition: background 0.2s;
}
.gg-btn:hover,
.wp-block-button__link:hover {
  background: var(--gg-green-dark);
}

/* Tally embed wrapper — matches Duda form container */
.gg-tally-form iframe {
  width: 100%;
  border: 0;
}

/* ===== Header / Footer chrome (matches Duda: phone | logo | CTA, nav strip below) ===== */
.gg-topbar {
  background: #fff;
  color: var(--gg-black);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 5vw;
  font-size: 15px;
  font-family: 'Poppins Bold', sans-serif;
}
.gg-topbar-call { display: flex; align-items: center; gap: 10px; }
.gg-topbar-247 {
  background: var(--gg-green);
  color: #fff;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}
.gg-topbar-calltext { color: var(--gg-gray-text); font-family: 'Poppins Regular', sans-serif; line-height: 1.3; }
.gg-topbar-phone {
  color: var(--gg-orange) !important;
  font-family: 'Poppins Bold', sans-serif;
  font-size: 20px;
  text-decoration: none;
}
.gg-topbar-cta {
  padding: 12px 26px;
  font-size: 16px;
  border-radius: 28px;
  text-decoration: none;
  color: #fff !important;
}
.gg-cta-arrow { margin-left: 6px; }

.gg-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px 4vw;
  background: var(--gg-gray-light);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  position: sticky;
  top: 0;
  z-index: 100;
}
.gg-logo img { display: block; height: 58px; width: auto; }

/* Blog post hero (featured image bg + overlaid title, like Duda) */
.gg-post-hero {
  background-size: cover;
  background-position: center;
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.gg-post-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
}
.gg-post-hero-inner { position: relative; max-width: 900px; padding: 40px 20px; }
.gg-post-hero-inner h1 { color: #fff; font-size: clamp(2rem, 4.5vw, 3.4rem); }
.gg-post-byline { color: #fff; font-size: 17px; }
.single .entry-header { display: none; }

.gg-nav .gg-menu { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; flex-wrap: wrap; }
.gg-nav .gg-menu > li { position: relative; }
.gg-nav .gg-menu a {
  display: block; padding: 10px 12px; color: var(--gg-black);
  font-family: 'Poppins Bold', sans-serif; font-size: 15px; text-decoration: none;
}
.gg-nav .gg-menu a:hover { color: var(--gg-green-dark); }
.gg-nav .sub-menu {
  display: none; position: absolute; top: 100%; left: 0; min-width: 240px;
  background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.12);
  list-style: none; margin: 0; padding: 6px 0; z-index: 101;
}
.gg-nav li:hover > .sub-menu, .gg-nav li:focus-within > .sub-menu { display: block; }
.gg-nav .sub-menu a { padding: 8px 16px; font-family: 'Poppins Regular', sans-serif; }

.gg-footer { background: var(--gg-black); color: #d1d1d1; padding: 48px 4vw 0; }
.gg-footer h6 { color: #fff; font-family: 'Poppins Bold', sans-serif; margin-bottom: 12px; }
.gg-footer a { color: var(--gg-green); text-decoration: none; }
.gg-footer-cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; max-width: 1200px; margin: 0 auto; }
.gg-footer-menu { list-style: none; margin: 0; padding: 0; }
.gg-footer-menu a { color: #d1d1d1; font-size: 14px; line-height: 2; }
.gg-footer-legal {
  border-top: 1px solid #333; margin-top: 36px; padding: 16px 0;
  text-align: center; font-size: 13px;
}

@media (max-width: 900px) {
  .gg-header { flex-wrap: wrap; }
  .gg-seal { display: none; }
  .gg-footer-cols { grid-template-columns: 1fr; gap: 24px; }
}

/* ===== Page content ===== */
.page .entry-header { display: none; } /* content carries its own h1 */
.gg-section { padding: 40px 0; }
.gg-section h2, .gg-section h3 { margin-top: 0; }

.wp-block-cover.gg-hero { min-height: 480px; text-align: center; }
.gg-hero h1 { color: #fff; font-size: clamp(2.2rem, 5vw, 3.6rem); }
.gg-hero p { color: #fff; font-size: 18px; max-width: 900px; margin-inline: auto; }
.gg-hero .wp-block-button__link {
  background: linear-gradient(90deg, #ffb114, var(--gg-orange));
  border-radius: 28px;
  padding: 14px 34px;
  font-size: 17px;
}
.wp-block-button__link { border-radius: 28px; padding: 12px 28px; }
.wp-block-columns { max-width: 1200px; margin-inline: auto; }

/* Full-bleed sections on pages (Duda runs edge-to-edge) */
.page .inside-article { padding: 0; }
.page .site-main { margin: 0; }
.page .entry-content > .wp-block-cover { width: 100vw; margin-left: calc(50% - 50vw); }
.page .entry-content > .wp-block-group.gg-section {
  max-width: 1140px;
  margin-inline: auto;
  padding: 48px 20px;
}
.gg-hero a { color: #fff; }

/* ===== Duda-markup pages =====
   Duda's compiled CSS is loaded on these pages and carries global rules (img
   sizing, container widths) that would otherwise reshape our own header and
   footer. Our chrome sits OUTSIDE the Duda wrapper, so we win it back here by
   specificity rather than by editing Duda's stylesheets. */

/* Duda sections are full-bleed; GeneratePress' 1200px container boxes them in. */
.gg-duda #page,
.gg-duda #page.grid-container,
.gg-duda .site-content,
.gg-duda .content-area,
.gg-duda .site-main,
.gg-duda .inside-article,
.gg-duda .entry-content,
.gg-duda .site-content > .container {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.gg-duda .entry-content > * { margin-block: 0; }

/* Header chrome: Duda's global img rule blows the logo up to 1022px wide. */
.gg-duda .gg-topbar .gg-logo img,
.gg-topbar .gg-logo img {
  height: 58px !important;
  width: auto !important;
  max-width: none !important;
}
.gg-duda .gg-topbar { flex-wrap: nowrap; }
.gg-duda .gg-topbar-call { flex: 0 0 auto; white-space: nowrap; }
.gg-duda .gg-topbar-calltext { white-space: nowrap; }
.gg-duda .gg-topbar-phone { font-size: 20px !important; white-space: nowrap; }
.gg-duda .gg-topbar-cta { white-space: nowrap; }
.gg-duda .gg-header,
.gg-duda .gg-footer { max-width: none; }

/* ===== Responsive chrome =====
   Duda drops to a compact header under 768px: logo, two round icon buttons and
   a hamburger. Our desktop topbar (phone block + wide CTA) overflowed the
   viewport there, which was the only thing making the page scroll sideways. */
.gg-nav-toggle { display: none; }
.gg-mobile-actions,
.gg-burger { display: none; }

@media (max-width: 767px) {
  .gg-topbar {
    padding: 10px 16px;
    gap: 10px;
    align-items: center;
  }
  .gg-topbar-call,
  .gg-topbar-cta { display: none !important; }

  .gg-logo { margin-right: auto; }
  .gg-duda .gg-topbar .gg-logo img,
  .gg-topbar .gg-logo img { height: 38px !important; }

  .gg-mobile-actions { display: flex; gap: 10px; align-items: center; }
  .gg-ico {
    width: 38px; height: 38px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff; text-decoration: none; flex: 0 0 auto;
  }
  .gg-ico-quote { background: var(--gg-orange); }
  .gg-ico-phone { background: #8b8b8b; }

  .gg-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 34px; height: 34px; cursor: pointer; flex: 0 0 auto;
  }
  .gg-burger span {
    display: block; height: 3px; width: 100%; border-radius: 2px;
    background: var(--gg-black);
  }

  /* nav is a drawer, closed until the hamburger is checked */
  .gg-header { display: none; }
  #gg-nav-toggle:checked ~ .gg-header { display: block; }
  .gg-nav .gg-menu { flex-direction: column; gap: 0; }
  .gg-nav .gg-menu a { padding: 12px 16px; border-bottom: 1px solid #e6e6e6; }
  .gg-nav .sub-menu { position: static; box-shadow: none; padding-left: 12px; }
  .gg-nav li:hover > .sub-menu { display: none; }
  .gg-nav li:focus-within > .sub-menu { display: block; }

  .gg-footer-cols { grid-template-columns: 1fr; }
}
