:root{
	--bg:#f6f7f9;
	--surface:#ffffff;
	--surface-2:#f1f4f8;
	--text:#16202a;
	--muted:#667789;
	--line:rgba(22,32,42,.12);
	--primary:#1d4ed8;
	--primary-dark:#163ea9;
	--accent:#0f172a;
	--shadow:0 14px 35px rgba(15,23,42,.08);
	--radius:18px;
	--sidebar-width:290px;
	--max-width:1440px;
}

*,
*::before,
*::after{
	box-sizing:border-box;
}

html{
	scroll-behavior:smooth;
}

body{
	margin:0;
	font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
	background:var(--bg);
	color:var(--text);
	line-height:1.5;
}

a{
	color:inherit;
	text-decoration:none;
}

img{
	display:block;
	max-width:100%;
}

.site-shell{
	min-height:100vh;
	display:flex;
	flex-direction:column;
}

.container{
	width:100%;
	max-width:var(--max-width);
	margin:0 auto;
	padding-left:1rem;
	padding-right:1rem;
}

/* =========================================
   Topbar / Header
========================================= */
.topbar{
	background:#0f172a;
	color:#fff;
	font-size:.92rem;
}

.topbar-inner{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:.75rem 1.25rem;
	padding-top:.65rem;
	padding-bottom:.65rem;
}

.topbar-links{
	display:flex;
	flex-wrap:wrap;
	gap:.85rem 1rem;
}

.topbar-links a:hover,
.topbar-links a:focus-visible{
	text-decoration:underline;
}

.site-header{
	position:sticky;
	top:0;
	z-index:50;
	background:#fff;
	border-bottom:1px solid var(--line);
}

.header-inner{
	display:grid;
	grid-template-columns:auto 1fr auto;
	align-items:center;
	gap:1rem;
	padding-top:1rem;
	padding-bottom:1rem;
}

.brand{
	display:flex;
	flex-direction:column;
	gap:.15rem;
}

.brand-title{
	font-size:1.35rem;
	font-weight:800;
	letter-spacing:-.02em;
}

.brand-subtitle{
	font-size:.92rem;
	color:var(--muted);
}

.site-search{
	display:flex;
	align-items:center;
	gap:.65rem;
}

.site-search input[type="search"]{
	width:100%;
	height:48px;
	padding:0 1rem;
	border:1px solid var(--line);
	border-radius:999px;
	background:var(--surface-2);
	font-size:1rem;
	outline:none;
}

.site-search input[type="search"]:focus{
	background:#fff;
	border-color:rgba(29,78,216,.5);
	box-shadow:0 0 0 4px rgba(29,78,216,.12);
}

.site-search button{
	height:48px;
	padding:0 1.2rem;
	border:0;
	border-radius:999px;
	background:var(--primary);
	color:#fff;
	font-size:.98rem;
	font-weight:700;
	cursor:pointer;
}

.site-search button:hover,
.site-search button:focus-visible{
	background:var(--primary-dark);
}

.main-nav{
	display:flex;
	flex-wrap:wrap;
	justify-content:flex-end;
	gap:.85rem;
}

.main-nav a{
	padding:.55rem .8rem;
	border-radius:999px;
	color:var(--accent);
	font-weight:600;
}

.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav a.active{
	background:var(--surface-2);
}

/* =========================================
   Layout
========================================= */
.page-layout{
	display:grid;
	grid-template-columns:var(--sidebar-width) minmax(0,1fr);
	gap:1.2rem;
	padding-top:1.1rem;
	padding-bottom:1.1rem;
}

.sidebar{
	display:flex;
	flex-direction:column;
	gap:1rem;
}

.main-content{
	display:flex;
	flex-direction:column;
	gap:1.2rem;
	min-width:0;
}

/* =========================================
   Panels / Sidebar
========================================= */
.panel{
	overflow:hidden;
	background:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--shadow);
}

.panel-header{
	padding:.95rem 1rem;
	border-bottom:1px solid var(--line);
	background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
	font-size:.96rem;
	font-weight:800;
}

.panel-body{
	padding:.9rem 1rem;
}

.sidebar-list{
	margin:0;
	padding:0;
	list-style:none;
}

.sidebar-list li + li{
	border-top:1px solid rgba(22,32,42,.06);
}

.sidebar-list a{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:.75rem;
	padding:.8rem 0;
	font-size:.96rem;
}

.sidebar-list a:hover,
.sidebar-list a:focus-visible{
	color:var(--primary);
}

.sidebar-muted{
	display:block;
	margin-top:.15rem;
	font-size:.82rem;
	color:var(--muted);
}

.quick-links-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:.65rem;
}

.quick-link{
	display:block;
	padding:.75rem .85rem;
	border:1px solid var(--line);
	border-radius:14px;
	background:var(--surface-2);
	font-size:.94rem;
	font-weight:700;
	text-align:center;
}

.quick-link:hover,
.quick-link:focus-visible{
	background:#fff;
	border-color:rgba(29,78,216,.3);
	color:var(--primary);
}

.vendor-list{
	display:grid;
	grid-template-columns:1fr;
	gap:.65rem;
}

.vendor-link{
	display:flex;
	align-items:center;
	gap:.75rem;
	padding:.75rem;
	border:1px solid var(--line);
	border-radius:14px;
	background:#fff;
}

.vendor-link:hover,
.vendor-link:focus-visible{
	border-color:rgba(29,78,216,.28);
	box-shadow:0 10px 25px rgba(29,78,216,.08);
}

.vendor-logo{
	width:42px;
	height:42px;
	flex-shrink:0;
	display:grid;
	place-items:center;
	overflow:hidden;
	border-radius:10px;
	background:var(--surface-2);
}

.vendor-logo img{
	width:100%;
	height:100%;
	object-fit:contain;
}

.vendor-name{
	font-size:.95rem;
	font-weight:700;
}

/* =========================================
   Hero
========================================= */
.hero{
	padding:1.5rem;
	border:1px solid var(--line);
	border-radius:26px;
	background:
		radial-gradient(circle at top right, rgba(29,78,216,.14), transparent 30%),
		linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
	box-shadow:var(--shadow);
}

.hero-grid{
	display:grid;
	grid-template-columns:minmax(0,1.25fr) minmax(280px,.95fr);
	gap:1.35rem;
	align-items:center;
}

.hero-eyebrow{
	display:inline-flex;
	align-items:center;
	gap:.5rem;
	margin-bottom:.9rem;
	padding:.42rem .75rem;
	border-radius:999px;
	background:rgba(29,78,216,.08);
	color:var(--primary-dark);
	font-size:.84rem;
	font-weight:800;
}

.hero h1{
	margin:0 0 .8rem;
	font-size:clamp(2rem,4vw,3.2rem);
	line-height:1.02;
	letter-spacing:-.04em;
}

.hero p{
	margin:0;
	max-width:62ch;
	color:var(--muted);
	font-size:1.02rem;
}

.hero-actions{
	display:flex;
	flex-wrap:wrap;
	gap:.8rem;
	margin-top:1.25rem;
}

.hero-stats{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:.9rem;
}

.stat-card{
	padding:1rem;
	border:1px solid var(--line);
	border-radius:20px;
	background:rgba(255,255,255,.9);
	box-shadow:0 8px 24px rgba(15,23,42,.06);
}

.stat-card strong{
	display:block;
	margin-bottom:.2rem;
	font-size:1.4rem;
	letter-spacing:-.03em;
}

.stat-card span{
	font-size:.92rem;
	color:var(--muted);
}

/* =========================================
   Buttons
========================================= */
.btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:.45rem;
	min-height:48px;
	padding:.85rem 1.1rem;
	border:1px solid transparent;
	border-radius:999px;
	font-size:.96rem;
	font-weight:800;
	transition:
		background .18s ease,
		color .18s ease,
		border-color .18s ease,
		transform .18s ease,
		box-shadow .18s ease;
	cursor:pointer;
}

.btn-primary{
	background:var(--primary);
	color:#fff;
}

.btn-primary:hover,
.btn-primary:focus-visible{
	background:var(--primary-dark);
	color:#fff;
}

.btn-secondary{
	background:#fff;
	color:var(--accent);
	border-color:var(--line);
}

.btn-secondary:hover,
.btn-secondary:focus-visible{
	border-color:rgba(29,78,216,.3);
	color:var(--primary);
}

.btn-small{
	min-height:40px;
	padding:.7rem 1rem;
	font-size:.9rem;
}

/* =========================================
   Sections / General
========================================= */
.section{
	padding:1.15rem;
	border:1px solid var(--line);
	border-radius:22px;
	background:var(--surface);
	box-shadow:var(--shadow);
}

.section-head{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	margin-bottom:1rem;
}

.section-head h2{
	margin:0;
	font-size:1.32rem;
	letter-spacing:-.03em;
}

.section-head p{
	margin:0;
	font-size:.95rem;
	color:var(--muted);
}

.info-strip{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1rem;
}

.info-card{
	padding:1rem;
	border:1px solid var(--line);
	border-radius:18px;
	background:var(--surface-2);
}

.info-card strong{
	display:block;
	margin-bottom:.3rem;
	font-size:1rem;
}

.info-card p{
	margin:0;
	font-size:.94rem;
	color:var(--muted);
}

.site-footer{
	margin-top:auto;
	background:#fff;
	border-top:1px solid var(--line);
}

.footer-inner{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:.75rem 1rem;
	padding-top:1rem;
	padding-bottom:1rem;
	font-size:.92rem;
	color:var(--muted);
}

/* =========================================
   Category / Search
========================================= */
.category-breadcrumb{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:.45rem;
	margin:0 0 .55rem;
	font-size:.92rem;
	color:var(--muted);
}

.category-breadcrumb a:hover,
.category-breadcrumb a:focus-visible{
	color:var(--primary);
	text-decoration:underline;
}

.category-title{
	margin:0;
	font-size:clamp(1.9rem,4vw,2.6rem);
	line-height:1.05;
	letter-spacing:-.04em;
}

.category-subtitle{
	margin:.45rem 0 0;
	font-size:.98rem;
	color:var(--muted);
}

.category-intro{
	margin-top:1rem;
	padding:1rem 1.1rem;
	border:1px solid var(--line);
	border-radius:18px;
	background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
}

.category-intro > *:first-child{
	margin-top:0;
}

.category-intro > *:last-child{
	margin-bottom:0;
}

.catalog-toolbar{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	margin-bottom:1rem;
}

.category-search-form{
	display:flex;
	flex:1 1 420px;
	flex-wrap:wrap;
	gap:.65rem;
}

.category-search-form input[type="search"]{
	flex:1 1 260px;
	height:46px;
	padding:0 1rem;
	border:1px solid var(--line);
	border-radius:999px;
	background:var(--surface-2);
	font-size:1rem;
	outline:none;
}

.category-search-form input[type="search"]:focus{
	background:#fff;
	border-color:rgba(29,78,216,.5);
	box-shadow:0 0 0 4px rgba(29,78,216,.12);
}

.category-search-form button{
	height:46px;
	padding:0 1.1rem;
	border:0;
	border-radius:999px;
	background:var(--primary);
	color:#fff;
	font-size:.95rem;
	font-weight:700;
	cursor:pointer;
}

.category-search-form button:hover,
.category-search-form button:focus-visible{
	background:var(--primary-dark);
}

.view-toggle{
	display:flex;
	align-items:center;
	gap:.45rem;
	padding:.35rem;
	border:1px solid var(--line);
	border-radius:999px;
	background:var(--surface-2);
}

.toggle-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:72px;
	min-height:38px;
	padding:0 .9rem;
	border-radius:999px;
	color:var(--accent);
	font-weight:700;
}

.toggle-btn.active{
	background:#fff;
	color:var(--primary);
	box-shadow:0 4px 14px rgba(15,23,42,.08);
}

.results-summary{
	margin-bottom:1rem;
	font-size:.96rem;
	color:var(--muted);
}

.results-summary strong{
	color:var(--text);
}

.empty-state{
	padding:2rem 1rem;
	border:1px dashed var(--line);
	border-radius:20px;
	background:var(--surface-2);
	text-align:center;
}

.empty-state h2{
	margin:0 0 .45rem;
	font-size:1.25rem;
}

.empty-state p{
	margin:0;
	color:var(--muted);
}

/* =========================================
   Category Cards
========================================= */
.category-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
	gap:1rem;
}

.category-card{
	display:flex;
	flex-direction:column;
	gap:.85rem;
	min-height:210px;
	padding:1rem;
	border:1px solid var(--line);
	border-radius:18px;
	background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
	transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.category-card:hover,
.category-card:focus-visible{
	transform:translateY(-2px);
	border-color:rgba(29,78,216,.22);
	box-shadow:0 18px 34px rgba(15,23,42,.08);
}

.category-card-top{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:.85rem;
}

.category-label{
	display:inline-flex;
	align-items:center;
	padding:.3rem .58rem;
	border-radius:999px;
	background:rgba(29,78,216,.08);
	color:var(--primary-dark);
	font-size:.76rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.02em;
}

.category-card h3{
	margin:0;
	font-size:1.06rem;
	line-height:1.15;
	letter-spacing:-.02em;
}

.category-card p{
	margin:0;
	font-size:.93rem;
	color:var(--muted);
}

.category-card-footer{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.75rem;
	margin-top:auto;
	font-size:.88rem;
}

.category-meta{
	font-weight:600;
	color:var(--muted);
}

.category-cta{
	font-weight:800;
	color:var(--primary);
}

/* =========================================
   Product Grid / List
========================================= */
.product-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
	gap:1.1rem;
	align-items:stretch;
}

.product-card{
	display:flex;
	flex-direction:column;
	min-width:0;
	height:100%;
	overflow:hidden;
	border:1px solid var(--line);
	border-radius:22px;
	background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);
	box-shadow:0 12px 28px rgba(15,23,42,.05);
	transition:
		transform .18s ease,
		box-shadow .18s ease,
		border-color .18s ease,
		background .18s ease;
}

.product-card:hover,
.product-card:focus-within{
	transform:translateY(-3px);
	border-color:rgba(29,78,216,.20);
	background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
	box-shadow:0 20px 40px rgba(15,23,42,.09);
}

.product-card-image{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:250px;
	padding:1.1rem;
	overflow:hidden;
	border-bottom:1px solid rgba(22,32,42,.06);
	background:
		radial-gradient(circle at top right, rgba(29,78,216,.08), transparent 28%),
		linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%);
}

.product-card-image img{
	width:100%;
	max-width:100%;
	max-height:240px;
	height:auto;
	object-fit:contain;
	transform:translateZ(0);
}

.product-card-body{
	display:flex;
	flex:1 1 auto;
	flex-direction:column;
	gap:.8rem;
	min-width:0;
	padding:1rem 1rem 1.05rem;
}

.product-meta-top{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:.45rem;
}

.product-part-number{
	display:inline-flex;
	align-items:center;
	padding:.32rem .62rem;
	border-radius:999px;
	background:#eef3ff;
	color:var(--primary-dark);
	font-size:.78rem;
	font-weight:800;
	line-height:1;
	letter-spacing:.01em;
}

.product-badge{
	display:inline-flex;
	align-items:center;
	padding:.32rem .62rem;
	border-radius:999px;
	background:#f3f4f6;
	color:#334155;
	font-size:.78rem;
	font-weight:700;
	line-height:1;
}

.product-title{
	margin:0;
	font-size:1.02rem;
	line-height:1.24;
	letter-spacing:-.02em;
	word-break:break-word;
}

.product-title a{
	transition:color .16s ease;
}

.product-title a:hover,
.product-title a:focus-visible{
	color:var(--primary);
}

.product-excerpt{
	margin:0;
	overflow:hidden;
	color:var(--muted);
	font-size:.92rem;
	line-height:1.55;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
}

.product-meta-bottom{
	display:flex;
	flex-wrap:wrap;
	gap:.45rem .85rem;
	margin-top:auto;
	padding-top:.15rem;
	font-size:.85rem;
	color:var(--muted);
}

.product-card-footer{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	margin-top:.35rem;
}

.product-list{
	display:flex;
	flex-direction:column;
	gap:.9rem;
}

.product-list-row{
	display:grid;
	grid-template-columns:132px minmax(0,1fr) auto;
	align-items:flex-start;
	gap:1rem;
	padding:1rem;
	border:1px solid var(--line);
	border-radius:22px;
	background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);
	box-shadow:0 10px 25px rgba(15,23,42,.05);
	transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.product-list-row:hover,
.product-list-row:focus-within{
	transform:translateY(-2px);
	border-color:rgba(29,78,216,.20);
	box-shadow:0 18px 34px rgba(15,23,42,.08);
}

.product-list-image{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:132px;
	padding:.8rem;
	overflow:hidden;
	border:1px solid rgba(22,32,42,.06);
	border-radius:16px;
	background:
		radial-gradient(circle at top right, rgba(29,78,216,.06), transparent 28%),
		linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%);
}

.product-list-image img{
	width:100%;
	max-width:100%;
	max-height:116px;
	height:auto;
	object-fit:contain;
}

.product-list-main{
	display:flex;
	flex-direction:column;
	gap:.55rem;
	min-width:0;
}

.product-list-actions{
	display:flex;
	align-items:center;
	justify-content:flex-start;
}

/* =========================================
   Product Detail
========================================= */
.product-detail-layout{
	display:grid;
	grid-template-columns:minmax(320px,460px) minmax(0,1fr);
	gap:1.5rem;
	align-items:start;
}

.product-detail-gallery{
	display:flex;
	flex-direction:column;
	gap:1rem;
	min-width:0;
}

.product-detail-image,
.product-detail-thumb{
	display:flex;
	align-items:center;
	justify-content:center;
	overflow:hidden;
	padding:1rem;
	border:1px solid var(--line);
	border-radius:22px;
	background:
		radial-gradient(circle at top right, rgba(29,78,216,.07), transparent 30%),
		linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%);
	box-shadow:0 10px 24px rgba(15,23,42,.05);
}

.product-detail-image{
	min-height:720px;
}

.product-detail-thumb{
	max-width:160px;
	min-height:160px;
}

.product-detail-image img{
	width:100%;
	max-width:100%;
	max-height:860px;
	height:auto;
	object-fit:contain;
	transform:translateZ(0);
}

.product-detail-thumb img{
	width:100%;
	max-width:100%;
	max-height:140px;
	height:auto;
	object-fit:contain;
	transform:translateZ(0);
}

.product-detail-main{
	display:flex;
	flex-direction:column;
	gap:1rem;
	min-width:0;
}

.product-detail-title{
	margin:0;
	font-size:clamp(1.9rem,3vw,2.9rem);
	line-height:1.03;
	letter-spacing:-.04em;
	word-break:break-word;
}

.product-detail-facts{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
	align-items:start;
	gap:.8rem 1.1rem;
	padding:1rem 1.1rem;
	border:1px solid var(--line);
	border-radius:20px;
	background:var(--surface-2);
}

.product-price-block{
	display:flex;
	flex-direction:column;
	gap:.18rem;
	width:fit-content;
	max-width:100%;
	padding:1rem 1.1rem;
	border:1px solid rgba(29,78,216,.16);
	border-radius:18px;
	background:#eef3ff;
}

.product-price-label{
	font-size:.85rem;
	font-weight:700;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:var(--muted);
}

.product-price{
	font-size:1.8rem;
	font-weight:900;
	line-height:1;
	letter-spacing:-.04em;
	color:var(--primary-dark);
}

.product-detail-actions{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:.75rem;
}

.product-note{
	max-width:420px;
	padding:1rem 1.1rem;
	border:1px solid var(--line);
	border-radius:14px;
	background:#f8fafc;
	font-size:.95rem;
	color:var(--muted);
}

.product-detail-content{
	font-size:1rem;
	line-height:1.7;
	color:var(--text);
}

.product-detail-content > *:first-child{
	margin-top:0;
}

.product-detail-content > *:last-child{
	margin-bottom:0;
}

.product-detail-content ul,
.product-detail-content ol{
	padding-left:1.25rem;
}

/* =========================================
   Quote Modal / Flash
========================================= */
.quote-modal{
	position:fixed;
	inset:0;
	display:none;
	z-index:1000;
}

.quote-modal.is-open{
	display:block;
}

.quote-modal-backdrop{
	position:absolute;
	inset:0;
	background:rgba(15,23,42,.58);
	backdrop-filter:blur(2px);
}

.quote-modal-dialog{
	position:relative;
	z-index:1;
	width:min(720px, calc(100% - 2rem));
	max-height:92vh;
	margin:4vh auto;
	overflow:auto;
	padding:1.25rem;
	border:1px solid var(--line);
	border-radius:24px;
	background:#fff;
	box-shadow:0 30px 80px rgba(15,23,42,.22);
}

.quote-modal-close{
	position:absolute;
	top:.85rem;
	right:.9rem;
	width:42px;
	height:42px;
	border:0;
	border-radius:999px;
	background:var(--surface-2);
	font-size:1.5rem;
	line-height:1;
	cursor:pointer;
}

.quote-modal-close:hover,
.quote-modal-close:focus-visible{
	background:#e9eef5;
}

.quote-modal h2{
	margin:0 0 .35rem;
	font-size:1.5rem;
	letter-spacing:-.03em;
}

.quote-modal-subtitle{
	margin:0 0 1rem;
	color:var(--muted);
}

.quote-product-summary{
	display:grid;
	gap:.7rem;
	margin-bottom:1rem;
	padding:1rem;
	border:1px solid var(--line);
	border-radius:18px;
	background:var(--surface-2);
}

.quote-summary-row{
	display:grid;
	grid-template-columns:120px minmax(0,1fr);
	align-items:start;
	gap:.75rem;
	font-size:.95rem;
}

.quote-form-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1rem;
}

.quote-field{
	display:flex;
	flex-direction:column;
	gap:.4rem;
}

.quote-field-full{
	grid-column:1 / -1;
}

.quote-field label{
	font-size:.94rem;
	font-weight:700;
}

.quote-field input,
.quote-field textarea{
	width:100%;
	padding:.85rem .95rem;
	border:1px solid var(--line);
	border-radius:14px;
	background:#fff;
	font:inherit;
	outline:none;
}

.quote-field input:focus,
.quote-field textarea:focus{
	border-color:rgba(29,78,216,.5);
	box-shadow:0 0 0 4px rgba(29,78,216,.12);
}

.quote-optional{
	font-weight:500;
	color:var(--muted);
}

.quote-actions{
	display:flex;
	flex-wrap:wrap;
	gap:.75rem;
	margin-top:1rem;
}

.quote-hp{
	position:absolute !important;
	left:-9999px !important;
	width:1px !important;
	height:1px !important;
	overflow:hidden !important;
}

.quote-flash{
	margin-bottom:1rem;
	padding:1rem 1.1rem;
	border:1px solid var(--line);
	border-radius:14px;
	font-weight:600;
}

.quote-flash-success{
	background:#ecfdf3;
	border-color:#bbf7d0;
	color:#166534;
}

.quote-flash-error{
	background:#fef2f2;
	border-color:#fecaca;
	color:#991b1b;
}

/* =========================================
   Contact
========================================= */
.contact-layout{
	display:grid;
	grid-template-columns:minmax(280px,380px) minmax(0,1fr);
	align-items:start;
	gap:1rem;
}

.contact-card{
	padding:1rem;
	border:1px solid var(--line);
	border-radius:20px;
	background:#fff;
	box-shadow:0 12px 28px rgba(15,23,42,.05);
}

.contact-card-title{
	margin:0 0 1rem;
	font-size:1.25rem;
	letter-spacing:-.03em;
}

.contact-logo-wrap{
	margin-bottom:1rem;
}

.contact-logo{
	display:block;
	max-width:220px;
	height:auto;
}

.contact-info-list{
	display:grid;
	gap:.9rem;
}

.contact-info-row{
	display:grid;
	gap:.25rem;
}

.contact-info-row strong{
	font-size:.86rem;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:var(--muted);
}

.contact-info-row a{
	word-break:break-word;
	color:var(--primary);
	text-decoration:underline;
}

.contact-actions{
	display:flex;
	flex-wrap:wrap;
	gap:.75rem;
	margin-top:1rem;
}

.contact-note-box{
	margin-top:1rem;
	padding:1rem 1.1rem;
	border:1px solid var(--line);
	border-radius:14px;
	background:#f8fafc;
	font-size:.95rem;
	color:var(--muted);
}

/* =========================================
   Vendor Listing / Brand Cards
========================================= */
.vendor-grid.vendor-grid-enhanced{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
	gap:1rem;
}

.vendor-card.vendor-card-enhanced{
	display:flex;
	flex-direction:column;
	min-height:100%;
	overflow:hidden;
	border:1px solid var(--line);
	border-radius:22px;
	background:#fff;
	box-shadow:0 12px 28px rgba(15,23,42,.05);
	color:inherit;
	text-decoration:none;
	transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.vendor-card.vendor-card-enhanced:hover,
.vendor-card.vendor-card-enhanced:focus-visible{
	transform:translateY(-3px);
	border-color:rgba(29,78,216,.22);
	box-shadow:0 18px 34px rgba(15,23,42,.08);
}

.vendor-card-stage{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:180px;
	padding:1rem;
	border-bottom:1px solid var(--line);
	background:
		radial-gradient(circle at top right, rgba(59,130,246,.08), transparent 35%),
		linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
}

.vendor-card-logo-frame{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:140px;
	padding:1rem;
	border:1px solid rgba(15,23,42,.06);
	border-radius:18px;
	background:#fff;
	box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

.vendor-card-logo-frame img{
	display:block;
	width:auto;
	max-width:100%;
	max-height:100%;
	height:auto;
	object-fit:contain;
}

.vendor-card-badge{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	width:116px;
	height:116px;
	overflow:hidden;
	border-radius:28px;
	font-weight:900;
	color:#fff;
	text-transform:uppercase;
	box-shadow:
		0 18px 34px rgba(15,23,42,.18),
		inset 0 1px 0 rgba(255,255,255,.22);
}

.vendor-card-badge::before{
	content:"";
	position:absolute;
	inset:0;
	background:
		radial-gradient(circle at 30% 25%, rgba(255,255,255,.32), transparent 28%),
		linear-gradient(135deg, rgba(255,255,255,.18), transparent 55%);
	pointer-events:none;
}

.vendor-card-badge span{
	position:relative;
	z-index:1;
}

.vendor-card-badge.badge-1{
	font-size:2.4rem;
	letter-spacing:.02em;
}

.vendor-card-badge.badge-2{
	font-size:2rem;
	letter-spacing:.04em;
}

.vendor-card-badge.badge-3{
	font-size:1.6rem;
	letter-spacing:.06em;
}

.vendor-card-badge.badge-4{
	font-size:1.3rem;
	letter-spacing:.08em;
}

.vendor-card-body.vendor-card-body-enhanced{
	display:flex;
	flex-direction:column;
	gap:.65rem;
	padding:1rem 1rem 1.1rem;
}

.vendor-card-body.vendor-card-body-enhanced h2{
	margin:0;
	font-size:1.2rem;
	line-height:1.12;
	letter-spacing:-.03em;
	color:var(--text);
}

.vendor-card-link{
	display:inline-flex;
	align-items:center;
	gap:.35rem;
	margin-top:auto;
	font-weight:800;
	color:var(--primary);
}

.vendor-card-badge.theme-1{
	background:linear-gradient(135deg,#2563eb 0%,#0f172a 100%);
}

.vendor-card-badge.theme-2{
	background:linear-gradient(135deg,#7c3aed 0%,#1e1b4b 100%);
}

.vendor-card-badge.theme-3{
	background:linear-gradient(135deg,#059669 0%,#064e3b 100%);
}

.vendor-card-badge.theme-4{
	background:linear-gradient(135deg,#ea580c 0%,#7c2d12 100%);
}

.vendor-card-badge.theme-5{
	background:linear-gradient(135deg,#dc2626 0%,#450a0a 100%);
}

.vendor-card-badge.theme-6{
	background:linear-gradient(135deg,#0891b2 0%,#083344 100%);
}

.vendor-card-badge.theme-7{
	background:linear-gradient(135deg,#ca8a04 0%,#422006 100%);
}

.vendor-card-badge.theme-8{
	background:linear-gradient(135deg,#db2777 0%,#500724 100%);
}

.vendor-hero-logo{
	display:flex;
	align-items:center;
	justify-content:center;
	max-width:180px;
	padding:1rem;
	border:1px solid var(--line);
	border-radius:18px;
	background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
	box-shadow:0 10px 24px rgba(15,23,42,.05);
}

.vendor-hero-logo img{
	width:100%;
	height:auto;
	object-fit:contain;
}

.vendor-category-strip{
	display:flex;
	flex-wrap:wrap;
	gap:.65rem;
	margin-top:1rem;
}

.vendor-category-pill{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:.65rem .95rem;
	border:1px solid var(--line);
	border-radius:999px;
	background:var(--surface-2);
	font-size:.92rem;
	font-weight:700;
}

.vendor-category-pill:hover,
.vendor-category-pill:focus-visible{
	background:#fff;
	border-color:rgba(29,78,216,.28);
	color:var(--primary);
}

/* =========================================
   Responsive
========================================= */
@media (max-width:1080px){
	.page-layout{
		grid-template-columns:1fr;
	}

	.hero-grid{
		grid-template-columns:1fr;
	}
}

@media (max-width:900px){
	.contact-layout{
		grid-template-columns:1fr;
	}
}

@media (max-width:860px){
	.header-inner{
		grid-template-columns:1fr;
	}

	.main-nav{
		justify-content:flex-start;
	}

	.info-strip{
		grid-template-columns:1fr;
	}

	.product-list-row{
		grid-template-columns:1fr;
	}

	.product-list-actions{
		justify-content:flex-start;
	}

	.product-detail-layout{
		grid-template-columns:1fr;
	}

	.product-detail-image{
		min-height:420px;
	}

	.product-detail-image img{
		max-height:560px;
	}

	.product-detail-thumb{
		max-width:140px;
		min-height:140px;
	}
}

@media (max-width:700px){
	.quote-form-grid{
		grid-template-columns:1fr;
	}

	.quote-summary-row{
		grid-template-columns:1fr;
	}
}

@media (max-width:640px){
	.container{
		padding-left:.85rem;
		padding-right:.85rem;
	}

	.hero{
		padding:1.15rem;
	}

	.section{
		padding:1rem;
	}

	.hero-actions{
		flex-direction:column;
	}

	.btn{
		width:100%;
	}
}

.panel-toggle{
	cursor:pointer;
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.panel-toggle-icon{
	font-size:1.2rem;
	font-weight:700;
}

.panel.is-collapsed .panel-body{
	display:none;
}

.panel.is-collapsed .panel-toggle-icon{
	transform:rotate(-45deg);
}