/* =============================================================
   FENVA PRECISION — SEO landing-page layer
   Import AFTER fenva-components.css. Shared layout for the
   capability / material / industry keyword landing pages so
   each page file stays lean and on-system.
   ============================================================= */

html { scroll-behavior: smooth; }
section[id], footer[id] { scroll-margin-top: 92px; }

/* ---- Section intro block ---- */
.intro { max-width: 820px; display: flex; flex-direction: column; gap: var(--space-4); margin-bottom: var(--space-10); }
.intro h2 { color: inherit; }
.intro .lead { color: var(--fg-2); }

/* ---- Sub-page hero ---- */
.breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); font-size: var(--text-sm); color: var(--fg-inverse-dim); margin-bottom: var(--space-5); }
.breadcrumb a { color: var(--fg-inverse-dim); }
.breadcrumb a:hover { color: #fff; text-decoration: none; }
.breadcrumb .sep { opacity: 0.45; }
.breadcrumb .here { color: #fff; }
.hero.industry .container { padding-block: clamp(56px, 8vw, 104px); }
.hero.industry .hero-grid { gap: var(--space-6); }
ul.hero-bullets { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
ul.hero-bullets li { display: flex; align-items: flex-start; gap: var(--space-3); color: var(--fg-inverse-dim); font-size: var(--text-lg); }
ul.hero-bullets li .icon { color: var(--accent-400); flex: none; margin-top: 4px; }

/* ---- Generic grids ---- */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-6); }
@media (max-width: 880px){ .grid-3 { grid-template-columns: 1fr; } }
@media (max-width: 760px){ .grid-2 { grid-template-columns: 1fr; } }

/* ---- Feature / info cards ---- */
.info-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-4);
  transition: box-shadow var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out); }
.info-card.lift:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: var(--slate-300); }
.info-card .card-icon { width: 44px; height: 44px; border-radius: var(--radius-md); display: grid; place-items: center; background: var(--blue-50); color: var(--blue-500); }
.info-card h3 { font-size: var(--text-h4); color: var(--fg-1); }
.info-card p { font-size: var(--text-base); }
.info-card ul.bullets { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.info-card ul.bullets li { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--text-base); color: var(--fg-2); }
.info-card ul.bullets li .icon { color: var(--blue-500); flex: none; width: 16px; height: 16px; margin-top: 4px; }
.info-card ul.bullets li strong { color: var(--fg-1); font-weight: var(--weight-semibold); }
.info-card .card-link { margin-top: var(--space-1); display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--blue-600); }
.info-card .card-link .icon { width: 16px; height: 16px; transition: transform var(--dur) var(--ease-out); }
.info-card.lift:hover .card-link .icon { transform: translateX(3px); }

/* ---- "What we can hold" checklist (over a light panel) ---- */
.spec-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.spec-list.cols-2 { grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-10); }
@media (max-width: 760px){ .spec-list.cols-2 { grid-template-columns: 1fr; } }
.spec-list li { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--text-lg); color: var(--fg-2); line-height: var(--leading-snug); }
.spec-list li .icon { color: var(--accent-500); flex: none; width: 20px; height: 20px; margin-top: 3px; }
.spec-list li strong { color: var(--fg-1); font-weight: var(--weight-semibold); }

/* ---- Prose line block (materials / finishes / applications) ---- */
.prose-line { max-width: 760px; display: flex; flex-direction: column; gap: var(--space-3); }
.prose-line p { font-size: var(--text-lg); line-height: var(--leading-relaxed); color: var(--fg-2); }
.prose-line p a { color: var(--blue-600); font-weight: var(--weight-medium); }

/* ---- Two-up: copy panel + media ---- */
.split { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: var(--space-12); align-items: center; }
.split .media { border-radius: var(--radius-xl); overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow-md); aspect-ratio: 4 / 3; background: var(--slate-100); }
.split .media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.92); }
@media (max-width: 920px){ .split { grid-template-columns: 1fr; gap: var(--space-8); } .split .media { aspect-ratio: 16 / 10; } }

/* ---- Gallery ---- */
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
@media (max-width: 920px){ .gallery-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .gallery-grid { grid-template-columns: 1fr; } }

/* ---- "Why Fenva" trust trio ---- */
.feature-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
@media (max-width: 760px){ .feature-trio { grid-template-columns: 1fr; } }
.qfeat { display: flex; flex-direction: column; gap: var(--space-3); }
.qfeat .qicon { width: 44px; height: 44px; border-radius: var(--radius-md); display: grid; place-items: center; background: var(--blue-50); color: var(--blue-500); }
.qfeat h3 { font-size: var(--text-h4); color: var(--fg-1); }
.qfeat p { font-size: var(--text-base); }

/* ---- FAQ accordion ---- */
.faq { max-width: 860px; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-xs); background: #fff; }
.faq details { border-bottom: 1px solid var(--border); }
.faq details:last-child { border-bottom: none; }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: var(--space-4); padding: var(--space-5) var(--space-6); font-size: var(--text-lg); font-weight: var(--weight-semibold); color: var(--fg-1); transition: background var(--dur-fast) var(--ease-out); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { background: var(--slate-50); }
.faq summary .q-icon { margin-inline-start: auto; flex: none; width: 20px; height: 20px; color: var(--blue-500); transition: transform var(--dur) var(--ease-out); }
.faq details[open] summary .q-icon { transform: rotate(45deg); }
.faq .answer { padding: 0 var(--space-6) var(--space-5); }
.faq .answer p { font-size: var(--text-base); color: var(--fg-2); line-height: var(--leading-relaxed); max-width: 70ch; }
.faq .answer p a { color: var(--blue-600); font-weight: var(--weight-medium); }

/* ---- Related-pages cross-link row ---- */
.xlinks { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
@media (max-width: 880px){ .xlinks { grid-template-columns: 1fr; } }
.xlink { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-5) var(--space-6); border: 1px solid var(--border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-xs); text-decoration: none;
  transition: box-shadow var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out); }
.xlink:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: var(--slate-300); text-decoration: none; }
.xlink .xicon { width: 40px; height: 40px; flex: none; border-radius: var(--radius-md); display: grid; place-items: center; background: var(--blue-50); color: var(--blue-500); }
.xlink .xbody { display: flex; flex-direction: column; gap: 2px; }
.xlink .xtitle { font-size: var(--text-base); font-weight: var(--weight-semibold); color: var(--fg-1); }
.xlink .xsub { font-size: var(--text-sm); color: var(--fg-3); }

/* ---- Quote CTA band ---- */
.cta-band { position: relative; background: var(--bg-navy); color: #fff; overflow: hidden; isolation: isolate; }
.cta-band .cta-media { position: absolute; inset: 0; z-index: -2; }
.cta-band .cta-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85) brightness(0.8); }
.cta-band::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(16,24,41,0.95) 0%, rgba(16,24,41,0.86) 46%, rgba(16,24,41,0.55) 100%); }
.cta-band .container { padding-block: clamp(64px, 9vw, 116px); }
.cta-inner { max-width: 680px; display: flex; flex-direction: column; gap: var(--space-5); }
.cta-inner h2 { color: #fff; }
.cta-inner .lead { color: var(--fg-inverse-dim); }
.cta-inner .hero-cta { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; margin-top: var(--space-2); }
.cta-inner .reassure { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--fg-inverse-dim); margin-top: var(--space-1); }
.cta-inner .reassure .icon { color: var(--accent-400); flex: none; }

/* ---- Lead-time / proof chips under hero ---- */
.lt-chips { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.lt-chip { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border: 1px solid var(--border-navy); border-radius: var(--radius-pill); background: rgba(255,255,255,0.05); color: var(--fg-inverse-dim); font-size: var(--text-sm); }
.lt-chip .icon { color: var(--accent-400); width: 16px; height: 16px; flex: none; }
.lt-chip strong { color: #fff; font-weight: var(--weight-semibold); }

/* ---- Parts gallery filter bar ---- */
.gallery-filters { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-8); }
.gallery-filters .filter-btn { appearance: none; cursor: pointer; border: 1px solid var(--border); background: #fff; color: var(--fg-2);
  font-family: inherit; font-size: var(--text-sm); font-weight: var(--weight-medium); padding: var(--space-2) var(--space-4); border-radius: var(--radius-pill);
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.gallery-filters .filter-btn:hover { border-color: var(--slate-300); background: var(--slate-50); }
.gallery-filters .filter-btn[aria-pressed="true"],
.gallery-filters .filter-btn.is-active { background: var(--bg-navy); color: #fff; border-color: var(--bg-navy); }
.gallery-filters .filter-btn .count { opacity: 0.6; margin-inline-start: 4px; font-variant-numeric: tabular-nums; }
.gallery-count { font-size: var(--text-sm); color: var(--fg-3); margin-bottom: var(--space-6); }

/* ---- Gallery card caption + material chip (50-part gallery) ---- */
.gallery-card .body .part-cap { font-size: var(--text-base); line-height: var(--leading-snug); color: var(--fg-1); text-wrap: pretty; margin: 0; }
.gallery-card .body .mat-chip { align-self: flex-start; margin-top: var(--space-3); display: inline-flex; align-items: center; padding: 4px var(--space-3); border-radius: var(--radius-pill);
  background: var(--blue-50); color: var(--blue-600); font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: 0.01em; }
.gallery-card.is-hidden { display: none; }
.gallery-card .thumb .industry-tag.inspect { background: var(--accent-500); color: #fff; }
