/* Georgia Wood Char UI extras: footer license medallion, product image lightbox, flame back-to-top */

/* ---------- Footer license medallion ---------- */
.footer-license { display: flex; align-items: center; gap: 14px; margin-top: 20px; }
.footer-license .footer-medallion { display: inline-block; flex: 0 0 auto; line-height: 0; border-radius: 50%; }
.footer-brand .footer-medallion img { width: 96px; height: 96px; margin: 0; }
.footer-license .footer-medallion:focus-visible { outline: 2px solid #FE6C01; outline-offset: 4px; }
.footer-brand .footer-license__text { font-size: 0.86rem; line-height: 1.5; max-width: 22ch; margin: 0; }

/* ---------- Product image lightbox ---------- */
.grade-card__zoom { display: block; position: relative; cursor: zoom-in; line-height: 0; }
.grade-card__zoom:focus-visible { outline: 3px solid #FE6C01; outline-offset: -3px; }
.gwc-lb { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 56px 16px 16px; border: 0; background: transparent; display: none; align-items: center; justify-content: center; overscroll-behavior: contain; }
.gwc-lb[open] { display: flex; }
.gwc-lb::backdrop { background: rgba(10, 12, 10, 0.88); }
.gwc-lb__img { display: block; width: auto; height: auto; max-width: min(100%, 1080px); max-height: calc(100vh - 80px); max-height: calc(100dvh - 80px); border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,0.5); cursor: default; }
.gwc-lb__close { position: fixed; top: 12px; right: 12px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.35); background: rgba(21,24,21,0.85); color: #F4EFE7; font: 400 28px/1 system-ui, sans-serif; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.gwc-lb__close:hover { background: #B45A32; }
.gwc-lb__close:focus-visible { outline: 3px solid #FE6C01; outline-offset: 2px; }
html.gwc-lock, html.gwc-lock body { overflow: hidden; }

/* ---------- Flame back-to-top ---------- */
.flame-top { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 56px; height: 56px; padding: 0; margin: 0; border: 2px solid rgba(254,108,1,0.55); border-radius: 50%; background: #151815; box-shadow: 0 0 0 3px rgba(254,108,1,0.18), 0 8px 22px rgba(0,0,0,0.35); cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .25s, transform .25s, box-shadow .25s, bottom .2s; }
.flame-top.is-on { opacity: 1; pointer-events: auto; transform: none; }
.flame-top:hover { box-shadow: 0 0 0 4px rgba(254,108,1,0.35), 0 10px 28px rgba(254,108,1,0.35); }
.flame-top:focus-visible { outline: 3px solid #F4EFE7; outline-offset: 3px; box-shadow: 0 0 0 6px #FE6C01; }
.flame-top svg { width: 26px; height: 34px; overflow: visible; }
.flame-top .ft-flame { transform-box: fill-box; transform-origin: 50% 100%; animation: ftFlicker 1.6s ease-in-out infinite alternate; animation-play-state: paused; }
.flame-top.is-on .ft-flame { animation-play-state: running; }
.flame-top:hover .ft-flame, .flame-top:focus-visible .ft-flame { animation-duration: .6s; }
@keyframes ftFlicker {
  0%   { transform: scale(1, 1) skewX(0deg); opacity: 1; }
  30%  { transform: scale(0.96, 1.05) skewX(-2deg); opacity: .94; }
  60%  { transform: scale(1.03, 0.95) skewX(2deg); opacity: 1; }
  100% { transform: scale(0.98, 1.03) skewX(-1deg); opacity: .96; }
}
@media (max-width: 768px) {
  .flame-top { width: 48px; height: 48px; right: 16px; bottom: 16px; }
  .flame-top svg { width: 22px; height: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  .flame-top, .flame-top .ft-flame { animation: none !important; transition: none; }
}

/* ---------- Carbon Credits: insured band ---------- */
.insured-band { position: relative; overflow: hidden; color: #F4EFE7; padding: clamp(56px, 8vw, 104px) 0 clamp(40px, 6vw, 64px);
  background: radial-gradient(ellipse at 90% 0%, rgba(120, 60, 30, 0.35), transparent 55%), radial-gradient(ellipse at 0% 100%, rgba(40, 80, 50, 0.45), transparent 60%), #151815; }
.insured-band__eyebrow { font: 500 0.8rem/1.4 'Satoshi', system-ui, sans-serif; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(244, 239, 231, 0.6); margin: 0 0 18px; }
.insured-band__struck { font-family: 'Fraunces', Georgia, serif; font-weight: 300; font-size: clamp(1.9rem, 5.2vw, 3.6rem); line-height: 1.15; color: rgba(244, 239, 231, 0.42); margin: 0 0 14px; max-width: 16ch; }
.insured-band__struck s { text-decoration-line: line-through; text-decoration-thickness: 2px; text-decoration-color: rgba(244, 239, 231, 0.55); }
.insured-band__title { font-family: 'Fraunces', Georgia, serif; font-weight: 400; font-size: clamp(2.2rem, 6.4vw, 4.4rem); line-height: 1.08; color: #F4EFE7; margin: 0; letter-spacing: -0.01em; }
.insured-band__title em { font-style: italic; font-weight: 300; color: #FE6C01; }
.insured-band__points { list-style: none; margin: clamp(40px, 6vw, 72px) 0 0; padding: 28px 0 0; border-top: 1px solid rgba(244, 239, 231, 0.14); display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 32px; }
.insured-band__points li { position: relative; padding-left: 18px; }
.insured-band__points li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; border-radius: 50%; background: #8FA37E; }
.insured-band__points strong { display: block; font: 600 1.05rem/1.4 'Satoshi', system-ui, sans-serif; color: #F4EFE7; }
.insured-band__points span { display: block; font-size: 0.92rem; color: rgba(244, 239, 231, 0.62); margin-top: 2px; }
.insured-band__license { display: flex; align-items: center; gap: 14px; margin-top: 32px; }
.insured-band__license a { line-height: 0; border-radius: 50%; flex: 0 0 auto; }
.insured-band__license a:focus-visible { outline: 2px solid #FE6C01; outline-offset: 4px; }
.insured-band__license img { width: 72px; height: 72px; }
.insured-band__license p { margin: 0; font-size: 0.9rem; color: rgba(244, 239, 231, 0.75); max-width: 30ch; }
@media (max-width: 760px) {
  .insured-band__points { grid-template-columns: 1fr; gap: 18px; }
  .insured-band__struck { max-width: none; }
}

/* ---------- CRO leads: contact layout, thank-you, mobile call bar (Oct 8) ---------- */
.form-honeypot { display: none; }
.contact-section { padding: 72px 0 88px; }
.contact-intro { max-width: 40rem; margin-bottom: 28px; }
.contact-intro h1,
.thanks-section h1 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.15;
  color: var(--carbon, #151815);
  margin: 8px 0 12px;
}
.contact-intro p,
.thanks-section p { color: var(--muted, #6B665C); font-size: 1.05rem; margin-bottom: 12px; }
.contact-form-wrap .form-grid { max-width: none; }
.contact-form-wrap textarea { min-height: 96px; }
.quote-details {
  border: 1px solid var(--ash, #D8D3C8);
  border-radius: 12px;
  background: var(--sand, #F4EFE7);
  padding: 0 16px;
}
.quote-details summary {
  cursor: pointer;
  font-weight: 600;
  padding: 14px 0;
  color: var(--carbon, #151815);
  list-style: none;
}
.quote-details summary::-webkit-details-marker { display: none; }
.quote-details summary::before {
  content: "+";
  display: inline-block;
  width: 1.2em;
  color: var(--clay, #B45A32);
}
.quote-details[open] summary::before { content: "\2013"; }
.quote-details .form-group { margin-bottom: 16px; }
.quote-details[open] { padding-bottom: 4px; }
.contact-nap { margin-top: 20px; color: var(--muted, #6B665C); font-size: 0.92rem; line-height: 1.5; }
.contact-nap a { color: var(--clay, #B45A32); font-weight: 600; }
.contact-photo { display: none; margin: 0; }
.contact-map { margin-top: 20px; }
.contact-map iframe { display: block; width: 100%; height: 300px; border: 1px solid var(--ash, #D8D3C8); border-radius: 12px; background: var(--sand, #F4EFE7); }
.contact-map__links { margin-top: 10px; color: var(--muted, #6B665C); font-size: 0.92rem; line-height: 1.6; }
.contact-map__sep { margin: 0 8px; }
.lead-bar { display: none; }

@media (min-width: 768px) {
  .contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
    column-gap: 48px;
    align-items: start;
  }
  .contact-intro,
  .contact-form-wrap { grid-column: 1; }
  .contact-photo {
    display: block;
    grid-column: 2;
    grid-row: 1 / span 2;
    position: sticky;
    top: 110px;
  }
  .contact-photo img {
    width: 100%;
    border-radius: 20px;
    object-fit: cover;
    aspect-ratio: 1;
  }
  .contact-photo figcaption {
    margin-top: 10px;
    color: var(--muted, #6B665C);
    font-size: 0.88rem;
  }
}

@media (max-width: 767px) {
  .container {
    width: auto;
    max-width: none;
    margin-inline: 0;
    padding-left: 24px;
    padding-right: 24px;
  }
  .contact-section { padding: 20px 0 28px; }
  .contact-intro { margin-bottom: 16px; }
  .contact-map iframe { height: 260px; }
  .contact-intro h1,
  .thanks-section h1 { font-size: 1.7rem; }
  body { padding-bottom: 76px; }
  .lead-bar {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 24px calc(8px + env(safe-area-inset-bottom));
    background: #151815;
    color: #F4EFE7;
    box-shadow: 0 -8px 24px rgba(21, 24, 21, 0.18);
  }
  .lead-bar a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-family: 'Satoshi', system-ui, sans-serif;
  }
  .lead-bar__call {
    color: #F4EFE7;
    font-weight: 600;
    font-size: 0.95rem;
  }
  .lead-bar__quote {
    background: #B45A32;
    color: #fff;
    border-radius: 999px;
    padding: 8px 16px;
    font-weight: 600;
    font-size: 0.92rem;
  }
  .flame-top { bottom: 88px; }
}
/* ---- nav-dd: Products & Applications dropdown (revert: delete this block + nav-dd markup) ---- */
.nav-dd{position:relative;display:inline-flex;align-items:center;gap:2px}
.nav-dd-toggle{background:none;border:0;padding:6px;margin:0;cursor:pointer;color:inherit;display:inline-flex;align-items:center;border-radius:6px}
.nav-dd-toggle:focus-visible{outline:2px solid var(--clay,#B45A32);outline-offset:2px}
.nav-dd-toggle svg{transition:transform .25s}
.nav-dd-menu{position:absolute;top:calc(100% + 10px);left:-14px;min-width:220px;background:var(--paper,#FAF7F1);border:1px solid var(--ash,#D8D3C8);border-radius:14px;box-shadow:0 16px 36px rgba(21,24,21,.12);padding:8px;display:none;flex-direction:column;z-index:130}
.nav-dd-menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-dd-menu a{display:block;padding:10px 12px;border-radius:10px;white-space:nowrap}
.nav-dd-menu a:hover,.nav-dd-menu a:focus-visible{background:var(--sand,#F4EFE7)}
.nav-dd-menu a::after{display:none!important}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu,.nav-dd.open .nav-dd-menu{display:flex}
.nav-dd.open .nav-dd-toggle svg,.nav-dd:hover .nav-dd-toggle svg{transform:rotate(180deg)}
@media (max-width:900px){
  .nav-dd{display:flex;flex-direction:column;align-items:stretch}
  .nav-dd-toggle{display:none}
  .nav-dd-menu{position:static;display:flex;border:0;box-shadow:none;background:transparent;padding:0 0 0 16px;min-width:0}
  .nav-dd-menu::before{display:none}
  .nav-dd-menu a{border-radius:0;padding:12px 4px;font-size:.98rem}
}
@media (prefers-reduced-motion:reduce){.nav-dd-toggle svg{transition:none}}

/* ---------- Footer credit (2026-10-08): quiet "Site by RevRocket" beside the copyright ---------- */
/* .footer-bottom is already at 0.7 opacity on the dark carbon footer, so the credit only dims a little more. */
.footer-bottom .foot-copy { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; }
.foot-credit-sep { display: inline-block; width: 1px; height: 12px; background: rgba(216,211,200,0.28); }
.footer-bottom a.foot-credit { display: inline-flex; align-items: center; gap: 7px; color: var(--ash); opacity: 0.85; font-size: 12px; letter-spacing: 0.02em; text-decoration: none; transition: opacity .2s ease, color .2s ease; }
.foot-credit img { display: block; width: auto; height: 14px; opacity: 0.8; filter: saturate(.65); transition: opacity .2s ease, filter .2s ease; }
.footer-bottom a.foot-credit:hover, .footer-bottom a.foot-credit:focus-visible { opacity: 1; color: var(--sand); }
.foot-credit:hover img, .foot-credit:focus-visible img { opacity: 1; filter: none; }
@media (max-width: 900px) { .footer-bottom .foot-copy { justify-content: center; } }
/* Phones: credit drops to its own centred line under the copyright; no dangling divider. */
@media (max-width: 600px) { .footer-bottom .foot-copy { flex-direction: column; gap: 8px; } .foot-credit-sep { display: none; } }
@media (prefers-reduced-motion: reduce) { .foot-credit, .foot-credit img { transition: none; } }

/* ---------- ISCC PLUS Certificate Holder banner (footer) ----------
   ISCC 208 Logos & Claims v2.2 §7.1: use banner whole, never below 4 cm (~151 CSS px) wide,
   keep proportions, clear space >= width of the "S" in ISCC (~12px at 200px wide). */
.footer-brand .footer-iscc { margin-top: 24px; padding: 12px 12px 12px 0; line-height: 0; }
.footer-brand .footer-iscc img { width: 200px; min-width: 160px; height: auto; margin: 0; }

/* Footer email: plain text (not a link), assembled with CSS so the raw address is not in the HTML (anti-scraper). */
.footer-col .footer-email { display: block; font-size: 0.92rem; margin-bottom: 10px; }
.footer-col .footer-email .fe-at::before { content: "\40"; }
.footer-col .footer-email .fe-dot::before { content: "\2e"; }
.footer-col .footer-email .fe-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.footer-email-inline .fe-at::before { content: "\40"; }
.footer-email-inline .fe-dot::before { content: "\2e"; }
.footer-email-inline .fe-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
