
:root{--ikkin-site-width:1144px}
html,body{max-width:100%;overflow-x:hidden}
body.ikkin-master-page main.ikkin-master-content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body.ikkin-master-page main.ikkin-master-content>.site-container{
 width:calc(100% - 40px)!important;max-width:var(--ikkin-site-width)!important;
 margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important
}
body.ikkin-master-page main.ikkin-master-content>.site-container>.container,
body.ikkin-master-page main.ikkin-master-content>.site-container>.wrap,
body.ikkin-master-page main.ikkin-master-content>.site-container>.inner{
 width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important
}
body.ikkin-master-page main>section.process-section>.process-intro,
body.ikkin-master-page main>section.process-section>.process-grid{
 width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important
}
body.ikkin-master-page main>section.process-section>.process-grid{
 display:grid!important;grid-template-columns:repeat(var(--process-cols,4),minmax(0,1fr))!important;gap:18px!important
}
body.ikkin-master-page main .grid-2,body.ikkin-master-page main .grid-3,body.ikkin-master-page main .grid-4,
body.ikkin-master-page main .card-grid,body.ikkin-master-page main .service-grid,body.ikkin-master-page main .steps-grid{
 width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important
}
body.ikkin-master-page main .grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
@media(max-width:760px){
 body.ikkin-master-page main.ikkin-master-content>.site-container{width:calc(100% - 28px)!important;max-width:none!important}
 body.ikkin-master-page main>section.process-section>.process-grid,
 body.ikkin-master-page main .grid-2,body.ikkin-master-page main .grid-3,body.ikkin-master-page main .grid-4,
 body.ikkin-master-page main .card-grid,body.ikkin-master-page main .service-grid,body.ikkin-master-page main .steps-grid{
  grid-template-columns:1fr!important
 }
}


/* SAME-EDGE FIX
   Legacy .section/#process rules still contributed horizontal padding.
   That padding made the intro + step cards ~32px narrower on each side
   even though the section itself was on the correct 1144px track.
*/
body.ikkin-master-page main.ikkin-master-content > section.site-container{
 padding-left:0!important;
 padding-right:0!important;
}

/* The process section and its direct children share identical border edges. */
body.ikkin-master-page main.ikkin-master-content > section#process.site-container{
 padding-left:0!important;
 padding-right:0!important;
}
body.ikkin-master-page main.ikkin-master-content > section#process.site-container > .process-intro,
body.ikkin-master-page main.ikkin-master-content > section#process.site-container > .process-grid{
 width:100%!important;
 max-width:none!important;
 margin-left:0!important;
 margin-right:0!important;
}


/* =========================================================
   SITEWIDE CONSISTENT INNER INDENT
   Outer boxes stay on the exact same site-container edges.
   Text/content inside intentional visual panels gets one
   consistent inset, matching the fee/content panels.
   ========================================================= */
:root{--ikkin-panel-indent:28px}

/* Restore inner breathing room ONLY to intentional hero panels.
   The previous same-edge rule correctly removed section-wrapper
   padding, but it also removed the hero's visual inner padding. */
body.ikkin-master-page main.ikkin-master-content >
section.site-container.ikkin-master-hero,
body.ikkin-master-page main.ikkin-master-content >
section.site-container.ikkin-clean-hero{
 padding-left:var(--ikkin-panel-indent)!important;
 padding-right:var(--ikkin-panel-indent)!important;
 box-sizing:border-box!important;
}

/* Apply the same horizontal inset to direct visual cards/panels
   that are themselves the visible box. Do not indent grids or
   structural section wrappers. */
body.ikkin-master-page main.ikkin-master-content >
.site-container.card,
body.ikkin-master-page main.ikkin-master-content >
.site-container.panel{
 padding-left:var(--ikkin-panel-indent)!important;
 padding-right:var(--ikkin-panel-indent)!important;
 box-sizing:border-box!important;
}

/* Process intro is an intentional visible card, so its text uses
   the same sitewide panel inset while its OUTER border still lines
   up exactly with the hero/separator track. */
body.ikkin-master-page main >
section#process.site-container > .process-intro{
 padding-left:var(--ikkin-panel-indent)!important;
 padding-right:var(--ikkin-panel-indent)!important;
 box-sizing:border-box!important;
}

@media(max-width:760px){
 :root{--ikkin-panel-indent:20px}
}


/* =========================================================
   HEADER ON THE SAME SITEWIDE CONTENT TRACK
   The combined logo/banner row now uses the exact same 1144px
   outside edges as the page content below it.
   ========================================================= */
body.ikkin-master-page header.ikkin-shell .ikkin-top{
 width:calc(100% - 40px)!important;
 max-width:var(--ikkin-site-width)!important;
 margin-left:auto!important;
 margin-right:auto!important;
 box-sizing:border-box!important;
}

/* Let the two header image areas share the full track cleanly. */
body.ikkin-master-page header.ikkin-shell .ikkin-logo-link,
body.ikkin-master-page header.ikkin-shell .ikkin-top-banner{
 min-width:0!important;
 box-sizing:border-box!important;
}

/* Images must stay inside their assigned header areas. */
body.ikkin-master-page header.ikkin-shell .ikkin-main-logo,
body.ikkin-master-page header.ikkin-shell .ikkin-firearms-banner{
 max-width:100%!important;
 height:auto!important;
 box-sizing:border-box!important;
}

/* Mobile: same 14px page gutter as all other content; banner remains hidden. */
@media(max-width:760px){
 body.ikkin-master-page header.ikkin-shell .ikkin-top{
  width:calc(100% - 28px)!important;
  max-width:none!important;
 }
 body.ikkin-master-page header.ikkin-shell .ikkin-logo-link{
  width:100%!important;
  display:flex!important;
  justify-content:center!important;
 }
 body.ikkin-master-page header.ikkin-shell .ikkin-top-banner{
  display:none!important;
 }
}


/* =========================================================
   AUDITED SITEWIDE VISUAL-PANEL INNER INDENT
   Every intentional top-level visual box gets the same inner
   horizontal breathing room. Structural/open sections do not.
   This catches homepage CTA/callout panels in addition to hero.
   ========================================================= */
:root{--ikkin-panel-indent:28px}

/* Explicit known visual components */
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-master-hero,
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-clean-hero,
body.ikkin-master-page main.ikkin-master-content > .site-container.card,
body.ikkin-master-page main.ikkin-master-content > .site-container.panel,
body.ikkin-master-page main.ikkin-master-content > .site-container.cta,
body.ikkin-master-page main.ikkin-master-content > .site-container.cta-section,
body.ikkin-master-page main.ikkin-master-content > .site-container.callout,
body.ikkin-master-page main.ikkin-master-content > .site-container.callout-section,
body.ikkin-master-page main.ikkin-master-content > .site-container.feature-box,
body.ikkin-master-page main.ikkin-master-content > .site-container.notice-box,
body.ikkin-master-page main.ikkin-master-content > .site-container.action-box{
 padding-left:var(--ikkin-panel-indent)!important;
 padding-right:var(--ikkin-panel-indent)!important;
 box-sizing:border-box!important;
}

/* Existing process intro is also a visible panel */
body.ikkin-master-page main > section#process.site-container > .process-intro{
 padding-left:var(--ikkin-panel-indent)!important;
 padding-right:var(--ikkin-panel-indent)!important;
 box-sizing:border-box!important;
}

@media(max-width:760px){
 :root{--ikkin-panel-indent:20px}
}


/* =========================================================
   FULL SITEWIDE CONSISTENCY PASS
   Every direct MAIN block is now explicitly classified in HTML:
   .ikkin-visual-panel = intentional visible box
   .ikkin-open-layout  = structural/open section
   No dependence on legacy component names for indentation.
   ========================================================= */

/* ONE outer page track */
body.ikkin-master-page main.ikkin-master-content > .site-container{
 width:calc(100% - 40px)!important;
 max-width:var(--ikkin-site-width)!important;
 margin-left:auto!important;margin-right:auto!important;
 box-sizing:border-box!important;
}

/* Open structural sections never add a second horizontal inset. */
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-open-layout{
 padding-left:0!important;padding-right:0!important;
}

/* Every explicitly classified visual panel uses identical inner spacing. */
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-visual-panel{
 padding-left:28px!important;padding-right:28px!important;
 box-sizing:border-box!important;
}

/* Nested visible cards use the same 28px internal rhythm, while their parent
   grid/section remains full track. */
body.ikkin-master-page main.ikkin-master-content .card,
body.ikkin-master-page main.ikkin-master-content .process-intro{
 box-sizing:border-box!important;
}
body.ikkin-master-page main.ikkin-master-content > section#process.site-container{
 padding-left:0!important;padding-right:0!important;
}
body.ikkin-master-page main.ikkin-master-content > section#process.site-container > .process-intro,
body.ikkin-master-page main.ikkin-master-content > section#process.site-container > .process-grid{
 width:100%!important;max-width:none!important;
 margin-left:0!important;margin-right:0!important;
}
body.ikkin-master-page main.ikkin-master-content > section#process.site-container > .process-intro{
 padding-left:28px!important;padding-right:28px!important;
}

/* Header track remains identical to body track. */
body.ikkin-master-page header.ikkin-shell .ikkin-top{
 width:calc(100% - 40px)!important;
 max-width:var(--ikkin-site-width)!important;
 margin-left:auto!important;margin-right:auto!important;
 box-sizing:border-box!important;
}

@media(max-width:760px){
 body.ikkin-master-page main.ikkin-master-content > .site-container,
 body.ikkin-master-page header.ikkin-shell .ikkin-top{
  width:calc(100% - 28px)!important;max-width:none!important;
 }
 body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-visual-panel,
 body.ikkin-master-page main.ikkin-master-content > section#process.site-container > .process-intro{
  padding-left:20px!important;padding-right:20px!important;
 }
}


/* =========================================================
   SERVICES + ESTATE CONSISTENCY REPAIR
   ========================================================= */

/* Never let a nested legacy .container create a second narrower page track. */
body.ikkin-master-page main.ikkin-master-content > .site-container > .ikkin-inner-full,
body.ikkin-master-page main.ikkin-master-content > section.site-container > .ikkin-inner-full{
 width:100%!important;max-width:none!important;
 margin-left:0!important;margin-right:0!important;
 padding-left:0!important;padding-right:0!important;
 box-sizing:border-box!important;
}

/* Service directory: one hero, then independent service cards on the open page. */
body.ikkin-master-page .svc-wrap{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;}
body.ikkin-master-page .svc-hero{
 display:block!important;
 background:linear-gradient(135deg,rgba(10,18,31,.98),rgba(18,30,48,.96))!important;
 border:1px solid rgba(255,255,255,.16)!important;
 border-top:4px solid #b8202e!important;
 border-bottom:4px solid #244f85!important;
 border-radius:18px!important;
 box-shadow:0 18px 42px rgba(0,0,0,.28)!important;
 padding:34px 28px!important;
 margin-bottom:24px!important;
}
body.ikkin-master-page .svc-hero h1{margin:0 0 12px!important;}
body.ikkin-master-page .svc-hero p{margin:0!important;max-width:900px!important;}
body.ikkin-master-page .svc-note{
 width:calc(100% - 40px)!important;max-width:1144px!important;
 margin:0 auto 22px!important;padding:0!important;
}
body.ikkin-master-page .svc-grid{
 display:grid!important;
 grid-template-columns:repeat(3,minmax(0,1fr))!important;
 gap:18px!important;
 padding:0!important;
 margin-bottom:28px!important;
}
body.ikkin-master-page .svc-grid .svc-card{
 display:flex!important;flex-direction:column!important;
 min-width:0!important;height:100%!important;
 padding:28px!important;
 text-decoration:none!important;
 background:linear-gradient(180deg,rgba(18,30,48,.96),rgba(10,17,28,.98))!important;
 border:1px solid rgba(255,255,255,.15)!important;
 border-top:3px solid #b8202e!important;
 border-radius:16px!important;
 box-shadow:0 12px 28px rgba(0,0,0,.22)!important;
 box-sizing:border-box!important;
}
body.ikkin-master-page .svc-grid .svc-card h2{margin:0 0 10px!important;}
body.ikkin-master-page .svc-grid .svc-card p{flex:1;margin:0 0 16px!important;}
body.ikkin-master-page .svc-grid .svc-card span{font-weight:700!important;}
body.ikkin-master-page .svc-divisions{padding:28px!important;margin-bottom:28px!important;}

@media(max-width:900px){
 body.ikkin-master-page .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:760px){
 body.ikkin-master-page .svc-hero{padding:28px 20px!important;}
 body.ikkin-master-page .svc-note{width:calc(100% - 28px)!important;}
 body.ikkin-master-page .svc-grid{grid-template-columns:1fr!important;}
 body.ikkin-master-page .svc-grid .svc-card{padding:20px!important;}
 body.ikkin-master-page .svc-divisions{padding:20px!important;}
}


/* =========================================================
   FINAL 40-PAGE VISUAL GEOMETRY AUDIT
   One outer track; nested legacy width controllers are neutralized.
   ========================================================= */
body.ikkin-master-page main.ikkin-master-content > .site-container{
 width:calc(100% - 40px)!important;
 max-width:1144px!important;
 margin-left:auto!important;margin-right:auto!important;
 box-sizing:border-box!important;
}
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-open-layout{
 padding-left:0!important;padding-right:0!important;
}
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-visual-panel,
body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-master-hero{
 padding-left:28px!important;padding-right:28px!important;
}
body.ikkin-master-page main.ikkin-master-content .ikkin-inner-full{
 width:100%!important;max-width:none!important;
 margin-left:0!important;margin-right:0!important;
 padding-left:0!important;padding-right:0!important;
 box-sizing:border-box!important;
}
/* Direct legacy containers are never allowed to create a second page track. */
body.ikkin-master-page main.ikkin-master-content > .site-container > .container{
 width:100%!important;max-width:none!important;
 margin-left:0!important;margin-right:0!important;
 padding-left:0!important;padding-right:0!important;
 box-sizing:border-box!important;
}
/* Standard hero treatment even on legacy pages after explicit classification. */
body.ikkin-master-page main.ikkin-master-content > .ikkin-master-hero{
 background:linear-gradient(135deg,rgba(10,18,31,.98),rgba(18,30,48,.96))!important;
 border:1px solid rgba(255,255,255,.16)!important;
 border-top:4px solid #b8202e!important;
 border-bottom:4px solid #244f85!important;
 border-radius:18px!important;
 box-shadow:0 18px 42px rgba(0,0,0,.28)!important;
}
@media(max-width:760px){
 body.ikkin-master-page main.ikkin-master-content > .site-container{
  width:calc(100% - 28px)!important;max-width:none!important;
 }
 body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-visual-panel,
 body.ikkin-master-page main.ikkin-master-content > .site-container.ikkin-master-hero{
  padding-left:20px!important;padding-right:20px!important;
 }
}

/* SITEWIDE HERO + CALL BUTTON AUTHORITY */
body.ikkin-master-page main.ikkin-master-content>.ikkin-standard-hero{width:calc(100% - 40px)!important;max-width:1144px!important;margin-left:auto!important;margin-right:auto!important;padding:34px 28px!important;box-sizing:border-box!important;background:linear-gradient(135deg,rgba(10,18,31,.98),rgba(18,30,48,.96))!important;border:1px solid rgba(255,255,255,.16)!important;border-top:4px solid #b8202e!important;border-bottom:4px solid #244f85!important;border-radius:18px!important;box-shadow:0 18px 42px rgba(0,0,0,.28)!important}
body.ikkin-master-page .ikkin-standard-hero-actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important;align-items:center!important;margin-top:20px!important}
body.ikkin-master-page .ikkin-standard-call-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:11px 18px!important;border-radius:10px!important;text-decoration:none!important;font-weight:800!important;background:#b8202e!important;color:#fff!important;border:1px solid rgba(255,255,255,.2)!important}
@media(max-width:760px){body.ikkin-master-page main.ikkin-master-content>.ikkin-standard-hero{width:calc(100% - 28px)!important;max-width:none!important;padding:28px 20px!important}body.ikkin-master-page .ikkin-standard-call-btn{width:100%!important;box-sizing:border-box!important}}

/* CLEAN INVENTORY DIRECTORY — replaces legacy spacer tables */
body.ikkin-master-page .inventory-intro{margin-top:26px!important;margin-bottom:18px!important}
body.ikkin-master-page .inventory-intro h2{margin:0 0 8px!important}
body.ikkin-master-page .inventory-grid{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:22px!important;margin-bottom:32px!important;
}
body.ikkin-master-page .inventory-card{
 display:flex!important;flex-direction:column!important;align-items:center!important;
 padding:20px!important;box-sizing:border-box!important;text-decoration:none!important;
 background:linear-gradient(180deg,rgba(18,30,48,.96),rgba(10,17,28,.98))!important;
 border:1px solid rgba(255,255,255,.15)!important;border-top:3px solid #b8202e!important;
 border-bottom:3px solid #244f85!important;border-radius:16px!important;
 box-shadow:0 12px 28px rgba(0,0,0,.22)!important;
}
body.ikkin-master-page .inventory-card img{
 display:block!important;width:100%!important;max-width:305px!important;height:auto!important;
 margin:0 auto 14px!important;
}
body.ikkin-master-page .inventory-card span{font-weight:800!important;color:#fff!important;font-size:1.05rem!important}
@media(max-width:760px){body.ikkin-master-page .inventory-grid{grid-template-columns:1fr!important;gap:16px!important}}


/* FOOTER CLEANUP — remove unintended left red accent beside Ikkin Arms footer identity */
body.ikkin-master-page footer .ikkin-footer-brand,
body.ikkin-master-page footer .footer-brand,
body.ikkin-master-page footer .ikkin-footer-card:first-child,
body.ikkin-master-page footer .footer-card:first-child,
body.ikkin-master-page footer h2,
body.ikkin-master-page footer h3{
 border-left:0!important;
 box-shadow:none!important;
}
body.ikkin-master-page footer .ikkin-footer-brand::before,
body.ikkin-master-page footer .footer-brand::before,
body.ikkin-master-page footer .ikkin-footer-card:first-child::before,
body.ikkin-master-page footer .footer-card:first-child::before,
body.ikkin-master-page footer h2::before,
body.ikkin-master-page footer h3::before{
 content:none!important;display:none!important;
}

/* DEFINITIVE BUSINESS-FOOTER RED-BAR FIX
   The visible Ikkin Arms heading is in .ikkin-business-footer, not <footer>. */
body.ikkin-master-page .ikkin-business-footer .ikkin-business-main h2,
body.ikkin-master-page .ikkin-business-footer h2{
 border-left:0!important;
 border-inline-start:0!important;
 padding-left:0!important;
 box-shadow:none!important;
 background-image:none!important;
}
body.ikkin-master-page .ikkin-business-footer .ikkin-business-main h2::before,
body.ikkin-master-page .ikkin-business-footer .ikkin-business-main h2:before,
body.ikkin-master-page .ikkin-business-footer h2::before,
body.ikkin-master-page .ikkin-business-footer h2:before{
 content:none!important;
 display:none!important;
 width:0!important;
 height:0!important;
 border:0!important;
 background:none!important;
 box-shadow:none!important;
}
