/*
Design philosophy: Industrial Editorial Precision.
This stylesheet enforces a sharp corporate visual system with disciplined spacing, restrained motion,
and controlled red accents rooted in the New Fine Pac logo.
This file is part of a no-build static export for direct shared-hosting deployment.
*/
:root {
  --color-bg: #f3f4f6;
  --color-surface: #ffffff;
  --color-surface-alt: #eef1f4;
  --color-text: #16181d;
  --color-text-soft: #5c6570;
  --color-border: rgba(22, 24, 29, 0.12);
  --color-dark: #121418;
  --color-red: #b5121b;
  --color-red-dark: #921018;
  --color-white: #ffffff;
  --shadow-soft: 0 22px 60px rgba(15, 20, 28, 0.08);
  --shadow-panel: 0 25px 80px rgba(0, 0, 0, 0.28);
  --radius-md: 18px;
  --radius-lg: 28px;
  --container: 1200px;
  --header-height: 94px;
  --transition: 220ms ease;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.container { width: min(calc(100% - 2rem), var(--container)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,0.96);
  backdrop-filter: blur(14px); border-bottom: 1px solid rgba(18,20,24,0.08);
}
.header-shell { min-height: var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand img { width: clamp(170px, 18vw, 250px); height: auto; }
.site-nav ul { display:flex; gap:1.2rem; list-style:none; padding:0; margin:0; align-items:center; }
.site-nav a { position:relative; font-size:0.95rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1d232c; padding-bottom:0.35rem; }
.site-nav a::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--color-red); transform:scaleX(0); transform-origin:left; transition:transform var(--transition); }
.site-nav a:hover::after, .site-nav a.is-active::after { transform:scaleX(1); }
.nav-toggle { display:none; width:52px; height:52px; border:1px solid rgba(18,20,24,0.12); border-radius:50%; background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.nav-toggle span { width:20px; height:2px; background:var(--color-dark); transition:transform var(--transition), opacity var(--transition); }
.hero-section { position:relative; min-height:calc(100vh - var(--header-height)); display:grid; overflow:clip; background:var(--color-dark); }
.hero-media, .hero-overlay { position:absolute; inset:0; }
.hero-media img { width:100%; height:100%; object-fit:cover; }
.hero-overlay { background:linear-gradient(90deg, rgba(10,12,16,0.84) 0%, rgba(10,12,16,0.72) 36%, rgba(10,12,16,0.38) 62%, rgba(10,12,16,0.18) 100%), linear-gradient(180deg, rgba(181,18,27,0.16) 0%, rgba(181,18,27,0) 30%); }
.hero-grid { position:relative; z-index:1; min-height:calc(100vh - var(--header-height)); display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,0.75fr); gap:2rem; align-items:end; padding:5rem 0 4rem; }
.hero-copy { max-width:720px; color:var(--color-white); padding:4rem 0; }
.hero-copy h1, .page-hero h1 {
  margin:0 0 1.2rem; font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(2.8rem, 5.6vw, 5.1rem); line-height:0.95; letter-spacing:-0.04em; text-transform:uppercase;
}
.hero-copy p { max-width:640px; font-size:1.08rem; margin-bottom:2rem; color:rgba(255,255,255,0.82); }
.page-hero p, .section-dark .section-intro p, .section-dark .quality-banner p, .section-dark .cta-panel p, .section-dark .two-column-copy p { color:rgba(255,255,255,0.76); }
.hero-panel {
  align-self:end; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12); backdrop-filter:blur(12px);
  border-radius:var(--radius-lg); padding:1.4rem; display:grid; gap:1rem; margin-bottom:2rem; box-shadow:var(--shadow-panel);
}
.hero-stat { border-top:1px solid rgba(255,255,255,0.14); padding-top:1rem; }
.hero-stat:first-child { border-top:0; padding-top:0; }
.hero-stat strong { display:block; margin-bottom:0.25rem; color:var(--color-white); font-size:2rem; letter-spacing:-0.04em; }
.hero-stat span { color:rgba(255,255,255,0.72); }
.eyebrow { display:inline-flex; margin-bottom:1rem; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.22em; font-weight:800; color:var(--color-red); }
.section-dark .eyebrow, .hero-copy .eyebrow, .page-hero .eyebrow, .cta-panel .eyebrow { color:#ff8b90; }
.btn {
  display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 1.45rem; border-radius:999px; border:1px solid transparent;
  font-size:0.95rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  transition:transform var(--transition), background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
}
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--color-red); color:var(--color-white); box-shadow:0 12px 30px rgba(181,18,27,0.22); }
.btn-primary:hover { background:var(--color-red-dark); }
.btn-outline { border-color:rgba(255,255,255,0.28); color:var(--color-white); background:transparent; }
.btn-outline:hover { border-color:rgba(255,255,255,0.5); background:rgba(255,255,255,0.06); }
.hero-actions, .section-cta-row { display:flex; flex-wrap:wrap; gap:1rem; }
.section { padding:6rem 0; }
.section-light { background:var(--color-surface); }
.section-alt { background:var(--color-surface-alt); }
.section-dark, .page-hero.section-dark, .cta-strip { background:var(--color-dark); color:var(--color-white); }
.texture-bg { position:relative; overflow:hidden; }
.texture-bg::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 10% 20%, rgba(181,18,27,0.14), transparent 30%), radial-gradient(circle at 88% 10%, rgba(255,255,255,0.04), transparent 26%), linear-gradient(180deg, rgba(255,255,255,0.02), transparent); pointer-events:none; }
.page-hero { padding:7rem 0 3rem; }
.compact-hero h1 { font-size:clamp(2.3rem, 4.8vw, 4.2rem); max-width:920px; }
.section-intro { max-width:760px; margin-bottom:2.2rem; }
.section-intro h2, .quality-banner h2, .cta-panel h2, .two-column-copy h2 {
  margin:0 0 1rem; font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif; font-size:clamp(2rem,4vw,3.4rem); line-height:1; letter-spacing:-0.04em; text-transform:uppercase;
}
.section-intro p, .split-section p, .metric-stack p, .product-card p, .value-card p, .industry-card p, .contact-card p, .form-help, .capability-list p, .process-steps p, .timeline p, .two-column-copy p, .site-footer p, .footer-contact a, .footer-contact li { color:var(--color-text-soft); }
.split-section, .split-visual, .two-column-copy, .contact-grid, .footer-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:2rem; align-items:start; }
.metric-stack, .value-grid, .industry-grid, .feature-grid, .product-grid, .gallery-grid, .capability-list, .process-steps { display:grid; gap:1.35rem; }
.metric-stack { grid-template-columns:repeat(2, minmax(0,1fr)); }
.metric-stack article, .feature-card, .value-card, .industry-card, .product-card, .contact-card, .cta-panel, .quality-banner, .process-steps article { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-soft); }
.section-dark .quality-banner, .cta-panel { background:linear-gradient(145deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03)); border-color:rgba(255,255,255,0.12); box-shadow:var(--shadow-panel); }
.metric-stack article, .feature-card, .value-card, .industry-card, .contact-card, .process-steps article { padding:1.5rem; }
.metric-stack span, .value-label, .process-steps span, .card-kicker { display:inline-flex; margin-bottom:0.6rem; color:var(--color-red); font-weight:800; letter-spacing:0.12em; text-transform:uppercase; font-size:0.78rem; }
.metric-stack article span { font-size:2.3rem; letter-spacing:-0.05em; line-height:1; }
.feature-grid.four-col, .industry-grid { grid-template-columns:repeat(4, minmax(0,1fr)); }
.product-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
.preview-grid { grid-template-columns:repeat(4, minmax(0,1fr)); }
.product-card { overflow:hidden; }
.product-card img, .visual-frame img, .gallery-card img { width:100%; height:100%; object-fit:cover; }
.product-card img { aspect-ratio:4 / 3; }
.product-card-content { padding:1.5rem; }
.product-card-content h2, .product-card-content h3, .feature-card h3, .metric-stack h3, .value-card h3, .industry-card h2, .process-steps h3, .contact-card h2, .contact-note h3, .timeline h3, .capability-list h3, .site-footer h3 { margin:0 0 0.75rem; font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif; text-transform:uppercase; letter-spacing:0.02em; }
.visual-frame { overflow:hidden; border-radius:var(--radius-lg); min-height:100%; box-shadow:var(--shadow-soft); }
.visual-frame img { min-height:100%; }
.capability-list { grid-template-columns:repeat(2, minmax(0,1fr)); }
.capability-list article { padding:0 0 1rem; border-bottom:1px solid rgba(22,24,29,0.1); }
.capability-list article:last-child, .capability-list article:nth-last-child(2) { border-bottom:0; }
.industry-tags { display:flex; flex-wrap:wrap; gap:0.75rem; margin:1.5rem 0; }
.industry-tags span { display:inline-flex; padding:0.75rem 1rem; border-radius:999px; background:#ffffff; border:1px solid var(--color-border); font-size:0.86rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; }
.quality-banner, .cta-panel { display:grid; gap:1.5rem; align-items:center; padding:2rem; }
.cta-panel { grid-template-columns:minmax(0,1fr) auto; }
.timeline { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.35rem; margin-top:2rem; }
.timeline article { position:relative; padding:1.5rem; background:#ffffff; border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-soft); }
.timeline article::before { content:""; position:absolute; left:1.5rem; top:0; width:42px; height:4px; background:var(--color-red); border-radius:999px; }
.timeline span { display:inline-flex; margin-bottom:0.8rem; font-weight:800; color:var(--color-red); text-transform:uppercase; letter-spacing:0.12em; font-size:0.78rem; }
.process-steps { grid-template-columns:repeat(3, minmax(0,1fr)); margin-top:2rem; }
.gallery-grid { grid-template-columns:repeat(12, 1fr); grid-auto-rows:110px; }
.gallery-card { position:relative; overflow:hidden; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); min-height:100%; }
.gallery-card:nth-child(1), .gallery-card:nth-child(4), .gallery-card:nth-child(7) { grid-column:span 7; grid-row:span 3; }
.gallery-card:nth-child(2), .gallery-card:nth-child(3), .gallery-card:nth-child(5), .gallery-card:nth-child(6), .gallery-card:nth-child(8) { grid-column:span 5; grid-row:span 3; }
.gallery-card figcaption { position:absolute; inset:auto 0 0 0; padding:1rem 1.1rem; background:linear-gradient(180deg, transparent, rgba(12,14,18,0.85)); color:var(--color-white); font-weight:700; letter-spacing:0.05em; text-transform:uppercase; font-size:0.82rem; }
.contact-form { display:grid; gap:0.85rem; }
.contact-form label { font-size:0.86rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; }
.contact-form input, .contact-form textarea { width:100%; border-radius:12px; border:1px solid rgba(22,24,29,0.14); background:#f9fafb; padding:0.95rem 1rem; transition:border-color var(--transition), box-shadow var(--transition); }
.contact-form input:focus, .contact-form textarea:focus { outline:none; border-color:rgba(181,18,27,0.48); box-shadow:0 0 0 4px rgba(181,18,27,0.12); }
.contact-note { margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid rgba(22,24,29,0.1); }
.form-help { font-size:0.92rem; }
.map-frame { margin-top:1.6rem; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); }
.map-frame iframe { display:block; width:100%; min-height:460px; border:0; }
.text-link { display:inline-flex; margin-top:0.5rem; color:var(--color-red); font-weight:700; text-transform:uppercase; letter-spacing:0.08em; font-size:0.84rem; }
.text-link:hover { color:var(--color-red-dark); }
.site-footer { background:#0d0f13; color:rgba(255,255,255,0.72); padding-top:4rem; }
.footer-grid { padding-bottom:2rem; }
.footer-logo { width:min(210px, 100%); margin-bottom:1rem; }
.footer-links, .footer-contact { padding:0; margin:0; list-style:none; display:grid; gap:0.75rem; }
.footer-links a:hover, .footer-contact a:hover { color:#ffffff; }
.footer-bottom { padding:1.2rem 0 2rem; border-top:1px solid rgba(255,255,255,0.08); }
[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity 700ms ease, transform 700ms ease; }
[data-reveal].is-visible { opacity:1; transform:translateY(0); }
@media (max-width: 1120px) {
  .feature-grid.four-col, .preview-grid, .timeline, .process-steps { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .gallery-grid { grid-auto-rows:130px; }
}
@media (max-width: 960px) {
  :root { --header-height: 88px; }
  .nav-toggle { display:inline-flex; }
  .site-nav { position:absolute; top:calc(100% + 0.5rem); left:1rem; right:1rem; background:rgba(255,255,255,0.98); border:1px solid rgba(18,20,24,0.08); border-radius:18px; box-shadow:var(--shadow-soft); opacity:0; pointer-events:none; transform:translateY(-10px); transition:opacity var(--transition), transform var(--transition); }
  .site-nav.is-open { opacity:1; pointer-events:auto; transform:translateY(0); }
  .site-nav ul { padding:1rem; flex-direction:column; align-items:stretch; }
  .hero-grid, .split-section, .split-visual, .two-column-copy, .contact-grid, .footer-grid, .cta-panel, .product-grid, .capability-list, .feature-grid.four-col, .preview-grid, .industry-grid, .timeline, .metric-stack, .process-steps { grid-template-columns:1fr; }
  .hero-grid { align-items:center; }
  .hero-panel { max-width:580px; }
  .reverse-on-mobile > :first-child { order:2; }
  .reverse-on-mobile > :last-child { order:1; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:180px; }
  .gallery-card:nth-child(n) { grid-column:span 1; grid-row:span 1; }
}
@media (max-width: 640px) {
  .container { width:min(calc(100% - 1.2rem), var(--container)); }
  .section, .page-hero { padding:4.5rem 0; }
  .hero-copy { padding:2.4rem 0; }
  .hero-copy h1, .page-hero h1, .section-intro h2, .quality-banner h2, .cta-panel h2, .two-column-copy h2 { line-height:1.02; }
  .quality-banner, .cta-panel, .contact-card, .feature-card, .value-card, .industry-card, .process-steps article, .metric-stack article, .timeline article, .product-card-content { padding:1.25rem; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:220px; }
  .brand img { width:170px; }
}
