/* Home page: hero, services, featured training, catalog, trust strip. Shared look comes from theme.css. */
body.page-home { background:#fffdf9; }
body.page-home header nav { gap:24px; }

/* Hero: light copy panel, dark shield panel with an angled edge. */
body.page-home .home-hero { display:grid; grid-template-columns:1.1fr 1fr; min-height:520px; background:var(--cream); border-bottom:1px solid var(--line); }
body.page-home .home-hero-copy { padding:64px 5% 56px 9%; display:flex; flex-direction:column; justify-content:center; }
body.page-home .home-hero h1 { font-size:clamp(38px,4.2vw,62px); text-transform:uppercase; letter-spacing:-.02em; line-height:1.02; margin:0; max-width:640px; }
body.page-home .hero-rule { display:block; width:84px; height:3px; background:#b69863; margin:24px 0 20px; }
body.page-home .lead { font-size:18px; margin-bottom:28px; }
body.page-home .home-actions { display:flex; flex-wrap:wrap; gap:12px; }
body.page-home .button-dark { background:#191b19!important; border-color:#191b19!important; }
body.page-home .button-dark:hover { background:#33362f!important; border-color:#33362f!important; }
body.page-home .home-hero-art { position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; background:radial-gradient(ellipse at 50% 44%,#33352e 0%,#20231f 60%,#191b19 100%); clip-path:polygon(14% 0,100% 0,100% 100%,0 100%,9% 50%); }
body.page-home .home-hero-art .ring { position:absolute; width:380px; height:380px; border:1px solid #baa26f2e; border-radius:50%; }
body.page-home .home-hero-art .shield-frame { width:260px; }

/* Outline button used for secondary actions. */
body.page-home .outline-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; border:1px solid #b7a37e; border-radius:4px; color:#6c5029; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:transparent; }
body.page-home .outline-button:hover { background:#f1ece2; }

/* Three services. */
body.page-home .services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:44px 5%; gap:0; border-bottom:1px solid var(--line); }
body.page-home .service { display:flex; gap:20px; padding:4px 32px; border-right:1px solid #ded7c9; }
body.page-home .service:first-child { padding-left:0; }
body.page-home .service:last-child { border-right:0; padding-right:0; }
body.page-home .service-icon { flex:0 0 60px; width:60px; height:60px; color:#806032; }
body.page-home .service-icon svg, body.page-home .trust-icon svg { width:100%; height:100%; }
body.page-home .service h3 { font-size:21px; text-transform:uppercase; letter-spacing:.02em; margin:4px 0 8px; }
body.page-home .service p { font-size:14px; color:var(--muted); line-height:1.65; margin:0 0 18px; }

/* Section headings with gold rules on both sides. */
body.page-home .home-section { padding:52px 5% 8px; }
body.page-home .ruled { display:flex; align-items:center; gap:22px; justify-content:center; font-size:clamp(24px,2.4vw,32px); text-transform:uppercase; letter-spacing:.02em; margin-bottom:28px; text-align:center; }
body.page-home .ruled::before, body.page-home .ruled::after { content:''; flex:0 1 160px; height:2px; background:linear-gradient(90deg,transparent,#b69863); }
body.page-home .ruled::after { background:linear-gradient(90deg,#b69863,transparent); }

/* Featured training cards. */
body.page-home .featured-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
body.page-home .featured-card { display:flex; flex-direction:column; border:1px solid #ded7ca; border-radius:6px; overflow:hidden; background:#fff; transition:box-shadow .2s,transform .2s; }
body.page-home .featured-card:hover { box-shadow:0 8px 24px #28271912; transform:translateY(-2px); }
body.page-home .featured-card img { width:100%; height:150px; object-fit:cover; filter:saturate(.75); }
body.page-home .featured-body { display:flex; flex-direction:column; gap:6px; padding:16px 18px 18px; flex:1; }
body.page-home .featured-body strong { font-size:16px; text-transform:uppercase; letter-spacing:.02em; line-height:1.25; }
body.page-home .featured-summary { font-size:14px; color:var(--muted); line-height:1.55; }
body.page-home .featured-meta { font-size:12px; color:var(--muted); margin-top:auto; padding-top:6px; }
body.page-home .featured-link { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#806032; }
body.page-home .section-link { text-align:center; margin:22px 0 0; }

/* Catalog tiles. */
body.page-home .catalog-section { padding-bottom:44px; }
body.page-home .catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
body.page-home .catalog-tile { display:flex; flex-direction:column; border:1px solid #ded7ca; border-radius:6px; overflow:hidden; background:#fff; }
body.page-home .catalog-tile:hover .catalog-art { color:#e5d0a6; }
body.page-home .catalog-art { height:120px; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at 50% 40%,#33352e 0%,#20231f 60%,#191b19 100%); color:#d4c19f; font-weight:800; font-size:22px; letter-spacing:.2em; text-transform:uppercase; transition:color .15s; }
body.page-home .catalog-label { display:flex; flex-direction:column; align-items:center; gap:4px; padding:14px 12px 16px; text-align:center; }
body.page-home .catalog-label strong { font-size:15px; text-transform:uppercase; letter-spacing:.04em; }
body.page-home .catalog-label small { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#806032; }
body.page-home .home-note { text-align:center; font-size:14px; color:#4d493d; margin:20px 0 0; }
body.page-home #home-coming-soon { margin:-8px 0 20px; background:#efe5cf; border:1px solid #d6c39a; padding:10px 14px; border-radius:4px; }
body.page-home .inline-link { color:#6c5029; border-bottom:1px solid #b7a37e; }

/* Dark trust strip. */
body.page-home .home-trust { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:#191b19; color:#e8e3d6; padding:30px 5%; border-top:2px solid #98743d; }
body.page-home .trust-item { display:flex; gap:16px; align-items:center; padding:4px 28px; border-right:1px solid #ffffff1f; }
body.page-home .trust-item:first-child { padding-left:0; }
body.page-home .trust-item:last-child { border-right:0; }
body.page-home .trust-icon { flex:0 0 46px; width:46px; height:46px; color:#d1b47e; }
body.page-home .trust-item strong { display:block; font-size:14px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:4px; }
body.page-home .trust-item p { font-size:13px; color:#b8bdb2; margin:0; line-height:1.55; }
body.page-home footer { border-top:0; }

@media (max-width:1150px) {
  body.page-home header { flex-wrap:wrap; }
  body.page-home .menu { display:block; color:#f5efe3; border-color:#8d805f; border-radius:4px; min-height:44px; background:transparent; }
  body.page-home header nav { display:none; width:100%; }
  body.page-home header nav.open { display:flex; flex-wrap:wrap; }
  body.page-home .featured-grid, body.page-home .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  body.page-home .home-hero { grid-template-columns:1fr; }
  body.page-home .home-hero-copy { padding:40px 6% 36px; }
  body.page-home .home-hero-art { min-height:260px; clip-path:none; }
  body.page-home .home-hero-art .shield-frame { width:170px; }
  body.page-home .home-hero-art .ring { width:240px; height:240px; }
  body.page-home .services { grid-template-columns:1fr; padding:16px 6%; }
  body.page-home .service, body.page-home .service:first-child, body.page-home .service:last-child { padding:22px 0; border-right:0; border-bottom:1px solid #ded7c9; }
  body.page-home .service:last-child { border-bottom:0; }
  body.page-home .home-trust { grid-template-columns:1fr; padding:16px 6%; }
  body.page-home .trust-item, body.page-home .trust-item:first-child { padding:16px 0; border-right:0; border-bottom:1px solid #ffffff1f; }
  body.page-home .trust-item:last-child { border-bottom:0; }
}
@media (max-width:600px) {
  body.page-home .home-hero h1 { font-size:clamp(30px,9vw,40px); }
  body.page-home .lead { font-size:16px; }
  body.page-home .home-actions { flex-direction:column; }
  body.page-home .home-actions > * { width:100%; }
  body.page-home .home-section { padding:38px 6% 4px; }
  body.page-home .ruled { gap:12px; font-size:22px; }
  body.page-home .ruled::before, body.page-home .ruled::after { flex-basis:40px; }
  body.page-home .featured-grid { grid-template-columns:1fr; gap:14px; }
  body.page-home .featured-card { flex-direction:row; }
  body.page-home .featured-card img { width:110px; height:auto; min-height:100%; flex:0 0 110px; }
  body.page-home .featured-body { padding:12px 14px; }
  body.page-home .featured-body strong { font-size:14px; }
  body.page-home .featured-summary { font-size:13px; }
  body.page-home .catalog-grid { gap:10px; }
  body.page-home .catalog-art { height:84px; font-size:15px; }
  body.page-home .catalog-label strong { font-size:13px; }
}
/* Shield crop matches the training hero. */
body.page-home .home-hero-art .shield-frame img { position:absolute; width:150.59%; max-height:none; max-width:none; height:auto; left:-48.09%; top:-31.4%; margin:0; }
body.page-home .home-actions .outline-button { text-transform:none; letter-spacing:0; font-size:14px; font-weight:600; }
@media (max-width:900px){body.page-home .ruled::before,body.page-home .ruled::after{flex-basis:60px}}
body.page-home img[src$="nra-basic-pistol.svg"]{object-position:left center;filter:none}

/* Catalog tiles: product photos on white, transfers as a service icon. */
body.page-home .catalog-art { height:150px; background:#fff; border-bottom:1px solid #eee7da; padding:14px 18px; }
body.page-home .catalog-art img { width:100%; height:100%; object-fit:contain; transition:transform .25s ease; }
body.page-home .catalog-tile:hover .catalog-art img { transform:scale(1.04); }
body.page-home .catalog-art-service { background:radial-gradient(ellipse at 50% 40%,#33352e 0%,#20231f 60%,#191b19 100%); color:#c9a96e; }
body.page-home .catalog-tile { transition:box-shadow .2s, transform .2s, border-color .2s; }
body.page-home .catalog-tile:hover { border-color:#c9b48d; box-shadow:0 10px 24px rgba(25,27,25,.08); transform:translateY(-2px); }
@media (max-width:700px){ body.page-home .catalog-art { height:110px; padding:10px 12px; } }
body.page-home .catalog-art-photo { padding:0; background:#2b2a2c; }
body.page-home .catalog-art-photo img { object-fit:cover; }
