/*
Theme Name:   United Arms Storefront
Theme URI:    https://example.com/
Author:       Your Store
Author URI:   https://example.com/
Description:  Firearms retail storefront theme with WooCommerce support and an FFL dealer locator on checkout for firearm shipments.
Version:      1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain:  united-arms
Tags:         e-commerce, dark, custom-menu, featured-images, translation-ready

This theme is a from-scratch parent theme built to be extended via a child theme
(see the "united-arms-storefront-child" theme). Do not edit this parent theme
directly on a live site -- put your customizations in the child theme's
style.css and functions.php so they survive updates to this theme.
*/

/* ---------------------------------------------------------------
   1.0 CSS Variables / Design Tokens
   Override any of these from the child theme by re-declaring them
   on :root in the child theme's style.css.
------------------------------------------------------------------ */
:root{
	--ua-bg:            #111111;
	--ua-bg-alt:        #1a1a1a;
	--ua-surface:       #1f1f1f;
	--ua-border:        #333333;
	--ua-text:          #eaeaea;
	--ua-text-muted:    #a8a8a8;
	--ua-accent:        #f1c40f;   /* gold - primary accent / CTAs */
	--ua-accent-dark:   #c9a20d;
	--ua-cta:           #93320f;   /* burnt-orange secondary button (FFL / choose actions) */
	--ua-cta-dark:      #7a290c;
	--ua-danger:        #e04b4b;
	--ua-success:       #3fae5c;
	--ua-radius:        4px;
	--ua-container:     1200px;
	--ua-font-body:     -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ua-font-head:     "Oswald", var(--ua-font-body);
}

/* ---------------------------------------------------------------
   2.0 Reset / Base
------------------------------------------------------------------ */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
	margin:0;
	background: var(--ua-bg);
	color: var(--ua-text);
	font-family: var(--ua-font-body);
	font-size: 16px;
	line-height: 1.6;
}
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--ua-accent); text-decoration:none; }
a:hover{ color: var(--ua-accent-dark); }
h1,h2,h3,h4,h5,h6{
	font-family: var(--ua-font-head);
	text-transform: uppercase;
	letter-spacing: .03em;
	color:#fff;
	line-height:1.25;
	margin: 0 0 .6em;
}
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
button, input, select, textarea{ font-family: inherit; font-size: 1rem; }

.ua-container{
	max-width: var(--ua-container);
	margin: 0 auto;
	padding: 0 20px;
}

/* Let full/wide-aligned blocks (e.g. a Cover block hero) break out of
   .ua-container and any WordPress content wrapper, instead of being
   clipped to the 1200px page width. */
.alignfull{
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.alignwide{
	width: 100vw;
	max-width: 1400px;
	margin-left: calc(50% - 50vw + (100vw - min(100vw, 1400px)) / 2);
	margin-right: calc(50% - 50vw + (100vw - min(100vw, 1400px)) / 2);
}

.ua-section{ padding: 60px 0; }
.screen-reader-text{
	position:absolute !important;
	width:1px;height:1px;
	overflow:hidden;
	clip:rect(1px,1px,1px,1px);
	white-space:nowrap;
}
.skip-link{
	position:absolute; left:-9999px; top:0; z-index:10000;
	background:var(--ua-accent); color:#111; padding:10px 16px;
}
.skip-link:focus{ left:10px; top:10px; }

/* Buttons */
.ua-btn{
	display:inline-block;
	padding: 12px 26px;
	border-radius: var(--ua-radius);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.04em;
	border:1px solid transparent;
	cursor:pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.ua-btn-primary{ background: var(--ua-accent); color:#111; }
.ua-btn-primary:hover{ background: var(--ua-accent-dark); color:#111; }
.ua-btn-cta{ background: var(--ua-cta); color:#fff; }
.ua-btn-cta:hover{ background: var(--ua-cta-dark); color:#fff; }
.ua-btn-outline{ background: transparent; border-color: var(--ua-border); color: var(--ua-text); }
.ua-btn-outline:hover{ border-color: var(--ua-accent); color: var(--ua-accent); }
.ua-btn-block{ display:block; width:100%; text-align:center; }

/* Forms */
.ua-field label{ display:block; margin-bottom:6px; font-size:.9rem; color: var(--ua-text-muted); }
.ua-field input[type=text],
.ua-field input[type=email],
.ua-field input[type=tel],
.ua-field input[type=search],
.ua-field select,
.ua-field textarea{
	width:100%;
	background: var(--ua-bg-alt);
	border:1px solid var(--ua-border);
	color: var(--ua-text);
	padding: 10px 12px;
	border-radius: var(--ua-radius);
}
.ua-field input:focus, .ua-field select:focus, .ua-field textarea:focus{
	outline:none; border-color: var(--ua-accent);
}

/* ---------------------------------------------------------------
   3.0 Header
------------------------------------------------------------------ */
.ua-header{
	position: sticky; top:0; z-index: 500;
	background: var(--ua-bg);
	border-bottom: 1px solid var(--ua-border);
}
.ua-header-inner{
	display:flex; align-items:center; justify-content:space-between;
	padding: 14px 0;
	gap: 24px;
}
.ua-logo{ font-family: var(--ua-font-head); font-size:1.5rem; color:#fff; }
.ua-logo img{ max-height:48px; }
.ua-primary-nav ul{ display:flex; gap: 26px; }
.ua-primary-nav a{
	color: var(--ua-text); font-weight:600; text-transform:uppercase; font-size:.85rem; letter-spacing:.05em;
}
.ua-primary-nav a:hover, .ua-primary-nav .current-menu-item > a{ color: var(--ua-accent); }
.ua-header-actions{ display:flex; align-items:center; gap:18px; }
.ua-header-actions a{ color: var(--ua-text); position:relative; }
.ua-cart-count{
	position:absolute; top:-8px; right:-10px;
	background: var(--ua-accent); color:#111;
	border-radius:50%; font-size:.65rem; font-weight:700;
	width:18px; height:18px; display:flex; align-items:center; justify-content:center;
}
.ua-menu-toggle{ display:none; background:none; border:none; color:#fff; font-size:1.5rem; }

@media (max-width: 880px){
	.ua-primary-nav{
		position: absolute; left:0; right:0; top:100%;
		background: var(--ua-bg); border-bottom:1px solid var(--ua-border);
		display:none;
	}
	.ua-primary-nav.is-open{ display:block; }
	.ua-primary-nav ul{ flex-direction:column; padding: 10px 20px 20px; gap:14px; }
	.ua-menu-toggle{ display:block; }
}

/* ---------------------------------------------------------------
   4.0 Hero / Home
------------------------------------------------------------------ */
.ua-hero{
	background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.75)), var(--ua-bg-alt) center/cover no-repeat;
	padding: 110px 0;
	text-align:center;
}
.ua-hero h1{ font-size: 2.8rem; margin-bottom:.3em; }
.ua-hero p{ color: var(--ua-text-muted); max-width:600px; margin:0 auto 1.6em; }

.ua-feature-grid{
	display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 800px){ .ua-feature-grid{ grid-template-columns: 1fr; } }
.ua-feature-card{
	background: var(--ua-surface); border:1px solid var(--ua-border); border-radius: var(--ua-radius);
	padding: 24px; text-align:center;
}
.ua-feature-card h3{ font-size:1.05rem; }
.ua-feature-card p{ color: var(--ua-text-muted); margin-bottom:0; }

/* ---------------------------------------------------------------
   5.0 Products / Shop grid
------------------------------------------------------------------ */
.ua-products-grid, ul.products{
	display:grid !important;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
	gap: 24px !important;
	margin:0 !important; padding:0 !important;
}
ul.products li.product, .ua-product-card{
	list-style:none;
	background: var(--ua-surface);
	border:1px solid var(--ua-border);
	border-radius: var(--ua-radius);
	padding: 16px;
	transition: border-color .15s ease, transform .15s ease;
}
ul.products li.product:hover{ border-color: var(--ua-accent); transform: translateY(-2px); }
ul.products li.product img{ border-radius: var(--ua-radius); margin-bottom:12px; }
ul.products li.product .woocommerce-loop-product__title{
	font-size:.95rem; color:#fff; text-transform:none; letter-spacing:0;
}
ul.products li.product .price{ color: var(--ua-accent); font-weight:700; }
ul.products li.product .button{
	display:block; text-align:center; margin-top:10px;
	background: var(--ua-accent); color:#111; padding:10px; border-radius: var(--ua-radius);
	font-weight:700; text-transform:uppercase; font-size:.8rem;
}

.woocommerce-firearm-badge{
	display:inline-block;
	background: var(--ua-cta); color:#fff;
	font-size:.65rem; font-weight:700; text-transform:uppercase;
	padding:3px 8px; border-radius: 3px; margin-bottom:8px;
}

/* ---------------------------------------------------------------
   6.0 Cart / Checkout
------------------------------------------------------------------ */
.woocommerce-cart table.shop_table, .woocommerce-checkout table.shop_table{
	width:100%; border-collapse:collapse; background: var(--ua-surface);
	border:1px solid var(--ua-border);
}
.woocommerce-cart table.shop_table th, .woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table th, .woocommerce-checkout table.shop_table td{
	border-bottom:1px solid var(--ua-border);
	padding: 14px; text-align:left;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select{
	background: var(--ua-bg-alt); border:1px solid var(--ua-border); color: var(--ua-text);
	padding:10px 12px; border-radius: var(--ua-radius); width:100%;
}
.woocommerce #payment div.payment_box{ background: var(--ua-bg-alt) !important; color: var(--ua-text); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #place_order{
	background: var(--ua-accent); color:#111; border-radius: var(--ua-radius);
	text-transform:uppercase; font-weight:700; padding:12px 26px; border:none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce #place_order:hover{
	background: var(--ua-accent-dark); color:#111;
}

/* ---- FFL dealer panel on checkout ---- */
.ua-ffl-panel{
	background: var(--ua-surface);
	border: 1px solid var(--ua-border);
	border-left: 4px solid var(--ua-cta);
	border-radius: var(--ua-radius);
	padding: 20px;
	margin: 20px 0;
}
.ua-ffl-panel h4{ margin-bottom:.3em; font-size:1.05rem; }
.ua-ffl-panel p.ua-ffl-help{ color: var(--ua-text-muted); font-size:.9rem; }
.ua-ffl-selected{
	display:none;
	background: var(--ua-bg-alt); border:1px solid var(--ua-border); border-radius: var(--ua-radius);
	padding: 14px; margin-top: 12px;
}
.ua-ffl-selected.is-visible{ display:block; }
.ua-ffl-selected .ua-ffl-name{ color:#fff; font-weight:700; }
.ua-ffl-selected .ua-ffl-change{ margin-top:10px; }

/* FFL modal */
.ua-modal-overlay{
	position:fixed; inset:0; background: rgba(0,0,0,.75);
	display:none; align-items:center; justify-content:center; z-index: 9999; padding: 20px;
}
.ua-modal-overlay.is-open{ display:flex; }
.ua-modal{
	background: var(--ua-bg-alt); border:1px solid var(--ua-border); border-radius: var(--ua-radius);
	width:100%; max-width: 760px; max-height: 90vh; overflow:auto;
	padding: 24px;
}
.ua-modal-header{ display:flex; justify-content:space-between; align-items:center; margin-bottom: 14px; }
.ua-modal-close{ background:none; border:none; color: var(--ua-text-muted); font-size:1.4rem; cursor:pointer; }
.ua-ffl-search-row{ display:flex; gap:10px; margin-bottom: 14px; }
.ua-ffl-search-row input{ flex:1; }
#ua-ffl-map{ width:100%; height: 320px; border-radius: var(--ua-radius); margin-bottom: 14px; background:#222; }
.ua-ffl-results{ max-height: 260px; overflow:auto; }
.ua-ffl-result{
	border:1px solid var(--ua-border); border-radius: var(--ua-radius);
	padding: 12px; margin-bottom:10px; cursor:pointer;
	transition: border-color .15s ease;
}
.ua-ffl-result:hover, .ua-ffl-result.is-active{ border-color: var(--ua-accent); }
.ua-ffl-result .ua-ffl-result-name{ color:#fff; font-weight:700; }
.ua-ffl-result .ua-ffl-result-addr{ color: var(--ua-text-muted); font-size:.85rem; }
.ua-ffl-result .ua-ffl-result-dist{ color: var(--ua-accent); font-size:.8rem; font-weight:700; }
.ua-ffl-empty, .ua-ffl-loading{ color: var(--ua-text-muted); padding: 20px; text-align:center; }

/* ---------------------------------------------------------------
   7.0 Footer
------------------------------------------------------------------ */
.ua-footer{
	background: var(--ua-bg-alt); border-top:1px solid var(--ua-border);
	padding: 50px 0 24px; margin-top: 60px;
}
.ua-footer-grid{ display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 30px; }
@media (max-width: 800px){ .ua-footer-grid{ grid-template-columns: 1fr 1fr; } }
.ua-footer h4{ font-size:.9rem; color: var(--ua-accent); }
.ua-footer a{ color: var(--ua-text-muted); }
.ua-footer a:hover{ color: var(--ua-accent); }
.ua-footer li{ margin-bottom:8px; }
.ua-footer-bottom{
	border-top:1px solid var(--ua-border); margin-top: 30px; padding-top: 20px;
	color: var(--ua-text-muted); font-size:.8rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}

/* ---------------------------------------------------------------
   8.0 Misc page templates (about / contact)
------------------------------------------------------------------ */
.ua-page-header{ text-align:center; padding: 50px 0 10px; }
.ua-contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 30px; }
@media (max-width: 800px){ .ua-contact-grid{ grid-template-columns: 1fr; } }
.ua-contact-info li{ margin-bottom: 16px; color: var(--ua-text-muted); }
.ua-contact-info strong{ color:#fff; display:block; }
