/**
 * MODULE 1 - Theme foundation + header + compact hero (0.2.3-m1.1)
 * Scope: no calculator input layout / engine / JavaScript changes.
 * Design: charcoal pine, warm cedar, galvanized steel and technical grid.
 */
:root {
  --fpt-pine: #294638;
  --fpt-pine-dark: #172d26;
  --fpt-cedar: #a96536;
  --fpt-cedar-dark: #774423;
  --fpt-cedar-light: #f6e8d6;
  --fpt-paper: #fcfbf7;
  --fpt-cream: #f1f2ef;
  --fpt-ink: #1e2b29;
  --fpt-muted: #51615c;
  --fpt-line: #cad3d1;
  --fpt-radius: 12px;
  --fpt-steel: #879a9f;
  --fpt-shadow: 0 14px 45px rgba(26, 42, 37, .095);
}
html { scroll-behavior: smooth; }
body { background: #f5f6f3; }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: linear-gradient(rgba(128,153,159,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(128,153,159,.075) 1px, transparent 1px);
  background-size: 34px 34px;
  pointer-events: none;
  z-index: -1;
}
#page { max-width: none; background: transparent; }
/* AFT-inspired contained site shell, without the original sprawling nav. */
#masthead, #site-navigation { background: #172d26; }
#masthead { border-bottom: 1px solid rgba(255,255,255,.12); }
#masthead .inside-header { max-width: 1220px; margin-inline: auto; padding: 12px 20px; }
#masthead .site-branding .main-title { font-size: clamp(1.1rem, 2.6vw, 1.4rem); letter-spacing: -.035em; }
#masthead .site-branding .main-title a { color: #fffaf0; }
#masthead .site-description { font-size: .78rem; letter-spacing: .06em; opacity: .83; }
#site-navigation { border-bottom: 3px solid #ac7547; box-shadow: 0 8px 22px rgba(13,29,24,.13); }
#site-navigation .inside-navigation { max-width: 1220px; margin: 0 auto; }
#site-navigation .main-nav > ul > li > a {
  min-height: 46px; padding: 0 17px; font-size: .91rem; line-height: 46px;
  white-space: nowrap; font-weight: 650; letter-spacing: .012em;
}
#site-navigation .main-nav > ul > li.current-menu-ancestor > a,
#site-navigation .main-nav > ul > li.current-menu-item > a,
#site-navigation .main-nav > ul > li > a:hover,
#site-navigation .main-nav > ul > li > a:focus-visible {
  background: #315345; color: #fff;
}
#site-navigation .main-nav ul ul {
  border: 1px solid #9bafa6;
  border-top: 3px solid #ac7547;
  box-shadow: 0 16px 32px rgba(11, 30, 22, .2);
  max-height: min(72vh, 570px);
  overflow-y: auto;
  width: min(390px, calc(100vw - 25px));
}
#site-navigation .main-nav ul ul a {
  padding: 10px 16px; line-height: 1.4;
  font-size: .9rem; background: #f9faf7; color: #223b33;
  white-space: normal; border-bottom: 1px solid #e0e7e1;
}
#site-navigation .main-nav ul ul a:hover,
#site-navigation .main-nav ul ul a:focus-visible { background: #e5ede7; color: #162f25; }
#site-navigation button.menu-toggle { border-color: #a5b9af; border-radius: 8px; margin: 7px 12px; }

/* Header image / hero: artwork ships locally, so no remote API, image CDN or runtime keys. */
.fpt-home-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(ellipse at 72% 45%, rgba(108,148,125,.24), transparent 42%),
    linear-gradient(120deg, #14291f 0%, #183328 52%, #36564b 100%);
  border-bottom: 5px solid #b58050;
}
.fpt-home-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-image: linear-gradient(rgba(219,229,220,.065) 1px, transparent 1px), linear-gradient(90deg, rgba(219,229,220,.065) 1px, transparent 1px);
  background-size: 38px 38px;
}
.fpt-home-hero__inner {
  margin: 0 auto; max-width: 1250px; min-height: 273px;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .99fr);
  align-items: center; gap: 12px; padding: 16px 24px 19px;
}
.fpt-home-hero__copy { position: relative; z-index: 2; max-width: 640px; }
.fpt-home-hero__eyebrow {
  display: inline-flex; gap: 10px; align-items: center;
  border: 1px solid #7f9383; border-radius: 100px;
  padding: 4px 11px; color: #e7e5d8; letter-spacing: .14em;
  font-size: .64rem; font-weight: 800; margin-bottom: 7px;
}
.fpt-home-hero h1 { color: white; font-size: clamp(1.95rem, 3vw, 2.55rem); max-width: 640px; margin: 0 0 7px; line-height: 1.08; letter-spacing: -.045em; }
.fpt-home-hero__lead { font-size: clamp(.92rem, 1.3vw, 1.03rem); font-weight: 620; color: #f4dfbf; margin-bottom: 4px; line-height: 1.4; }
.fpt-home-hero__detail { color: #dbe5dc; font-size: .86rem; line-height: 1.45; max-width: 550px; margin: 0 0 11px; }
.fpt-home-hero__actions { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 8px; }
.fpt-home-hero__actions a {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 9px; padding: 9px 16px; border-radius: 9px; line-height: 1.3;
  font-weight: 750; text-decoration: none; min-height: 43px; font-size: .86rem;
}
.fpt-home-hero__actions .fpt-home-hero__primary { background: #c08348; border: 1px solid #dfa977; color: #132a24; box-shadow: 0 4px 0 rgba(8,21,15,.25); }
.fpt-home-hero__actions .fpt-home-hero__primary:hover,
.fpt-home-hero__actions .fpt-home-hero__primary:focus-visible { background: #e2b77e; color: #182d23; }
.fpt-home-hero__actions .fpt-home-hero__secondary { background: rgba(255,255,255,.065); border: 1px solid #91b2a4; color: #fff; }
.fpt-home-hero__actions .fpt-home-hero__secondary:hover,
.fpt-home-hero__actions .fpt-home-hero__secondary:focus-visible { background: rgba(255,255,255,.17); }
.fpt-home-hero__caveat { color: #becfc6; font-size: .7rem; line-height: 1.35; max-width: 550px; margin: 0; }
.fpt-home-hero__media { align-self: stretch; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.fpt-home-hero__media img { display: block; width: min(100%, 680px); height: auto; max-height: 255px; object-fit: contain; filter: drop-shadow(0 20px 20px rgba(0, 0, 0, .17)); }
.fpt-calculator-anchor { display: block; position: relative; height: 0; scroll-margin-top: 18px; }

/* Clean page containers: WordPress content remains editable, but is not a sidebar blog. */
.site-content { max-width: 1200px; margin-inline: auto; }
.separate-containers .inside-article,
.site-content .inside-article {
  background: rgba(255,255,255,.96); border: 1px solid #dae1dc;
  border-radius: 14px; box-shadow: var(--fpt-shadow); padding: clamp(16px,3vw,34px);
}
.separate-containers .site-main { margin-top: 23px; margin-bottom: 35px; }
.entry-content { font-size: .97rem; }
.entry-content h2 { margin-top: 1.65em; letter-spacing: -.025em; }
.entry-content > .fpt-callout { background: #edf3ee; border-color: #c7d9cd; border-left-color: #517a5c; }
.entry-content .fpt-tool-list li { background: #fdfefd; border-color: #d7dfda; box-shadow: 0 5px 18px rgba(30,50,38,.045); }
.entry-content .fpt-tool-list li:hover { border-color: #ba986b; }
.entry-content .fpt-tool-list a { font-size: 1rem; }
.site-info { border-top: 4px solid #ad7647; }
.site-info .inside-site-info { max-width: 1220px; margin-inline: auto; }
.fpt-footer-nav ul { display:flex; gap: 12px 24px; justify-content: center; flex-wrap:wrap; }
.fpt-footer-nav ul li { margin:0; }
/* Prevent the old GeneratePress default widget sidebar from reappearing on Pages. */
.no-sidebar .site-content .content-area { width: 100%; float: none; }

@media (min-width: 1100px) {
  /* Keep the complete desktop banner ~30% shorter than the original rendering. */
  .fpt-home-hero__inner { min-height: 337px; }
}
@media (max-width: 900px) {
  .fpt-home-hero__inner { grid-template-columns: minmax(0,1fr) minmax(0,.75fr); }
  .fpt-home-hero__media img { min-width: 290px; transform: translateX(28px); }
}
@media (max-width: 767px) {
  #masthead .inside-header { padding: 13px 17px; }
  #site-navigation .main-nav ul ul { border: 0; box-shadow: none; max-height: none; width: auto; }
  #site-navigation .main-nav ul ul a { background: #244437; color:#fff; border-color:rgba(255,255,255,.12); }
  #site-navigation .main-nav ul ul a:hover { background:#315846; color:#fff; }
  .fpt-home-hero__inner { display: block; padding: 20px 18px 18px; min-height: auto; }
  .fpt-home-hero__media { margin: 8px -18px -5px 20px; max-height: 135px; }
  .fpt-home-hero__media img { min-width:0; width:min(95%,520px); max-height:135px; transform:none; }
  /* The long description is repeated just below the hero; remove it from the small-screen banner. */
  .fpt-home-hero__detail { display: none; }
  .fpt-home-hero__actions a { flex:1 1 155px; }
  .fpt-home-hero h1 { font-size: clamp(1.85rem,7.2vw,2.35rem); }
  .separate-containers .site-main { margin-top: 12px; }
  .site-content .inside-article { border-radius: 10px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print { .fpt-home-hero, #masthead, #site-navigation { display:none !important; } body::before {display:none;} }
