@font-face {
	font-family: "Gotham";
	src: url("https://db.onlinewebfonts.com/t/a9db6cd9116ff56da3875b35444f0c45.woff2") format("woff2");
	font-display: swap;
}
@font-face {
	font-family: "Gotham Bold";
	src: url("https://db.onlinewebfonts.com/t/5d6f50ed2dde0e4ad455448f896c09f0.woff2") format("woff2");
	font-display: swap;
}

:root {
	--gw-green: #007a63;
	--gw-green-soft: #3e876f;
	--gw-text: #0e0f14;
	--gw-muted: #555;
	--gw-line: #d8d8d8;
	--gw-bg: #f7f7f7;
	--gw-card: #fff;
}

* { box-sizing: border-box; }
html, body {
	margin: 0;
	padding: 0;
	background: var(--gw-bg);
	color: var(--gw-text);
	font-family: Gotham, Arial, sans-serif;
}
button, input, textarea, select { font-family: inherit; }
button { cursor: pointer; }
input:focus, textarea:focus, button:focus { outline: none; }

/* Shared buttons */
.button,
.button-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	min-width: 140px;
	padding: 0 26px;
	border-radius: 999px;
	font: 16px/1 "Gotham Bold", Arial, sans-serif;
	text-decoration: none;
	cursor: pointer;
	transition: opacity .18s ease, transform .18s ease;
}
.button {
	border: 0;
	background: var(--gw-green);
	color: #fff;
}
.button-secondary {
	border: 2px solid var(--gw-green);
	background: #fff;
	color: var(--gw-green);
}
.button:hover,
.button-secondary:hover { opacity: .92; }

/* ---------- SHOP / INDEX: locked product cards ---------- */
.shop-page {
	width: 100%;
	min-height: 100vh;
	padding: 24px 34px 40px;
	background: var(--gw-bg);
}
.shop-page .header {
	width: min(1444px, 100%);
	margin: 0 auto 24px;
	position: static;
	background: transparent;
	padding: 0;
}
.shop-page .shopcontainer {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	cursor: pointer;
}
.shop-page .headertext { display: none; }
.shop-page #carticon {
	font-size: 34px;
	line-height: 1;
}
.rnd {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.rnd span {
	position: absolute;
	top: -13px;
	right: -9px;
	min-width: 24px;
	height: 24px;
	padding: 0 7px;
	border-radius: 999px;
	background: var(--gw-green);
	color: #fff;
	font: 12px/24px "Gotham Bold", Arial, sans-serif;
	text-align: center;
}
.shop-page .shop-products {
	width: min(1444px, 100%);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(auto-fill, 340px);
	justify-content: center;
	align-items: stretch;
	gap: 28px;
}
.shop-page .productcontainer {
	width: 340px;
	min-width: 340px;
	max-width: 340px;
	min-height: 410px;
	background: var(--gw-card);
	border-radius: 18px;
	box-shadow: 0 18px 36px rgba(0,0,0,.10);
	padding: 30px 28px 26px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
}
.shop-page .productimagewrap {
	height: 170px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	cursor: pointer;
}
.shop-page .productimagewrap img {
	max-width: 180px;
	max-height: 165px;
	object-fit: contain;
}
.shop-page .productdetails {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	align-items: end;
	gap: 14px;
	margin-bottom: 24px;
}
.shop-page .productcopy { min-width: 0; }
.shop-page .productheader {
	font: 24px/1.05 Gotham, Arial, sans-serif;
	letter-spacing: -.4px;
	margin: 0 0 6px;
	overflow-wrap: break-word;
}
.shop-page .productdescription,
.shop-page .productunit {
	font-size: 15px;
	line-height: 1.25;
	margin: 0;
	color: var(--gw-text);
}
.shop-page .productunit { margin-top: 14px; }
.shop-page .productprice {
	font: 24px/1 "Gotham Bold", Arial, sans-serif;
	white-space: nowrap;
	padding-bottom: 6px;
}
.shop-page .productactions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	align-items: center;
}
.shop-page .qty-control {
	height: 42px;
	width: 100%;
	min-width: 0;
	border: 3px solid var(--gw-green);
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 0 18px;
	color: var(--gw-green);
	background: #fff;
	font: 16px/1 "Gotham Bold", Arial, sans-serif;
}
.shop-page .qty-btn {
	border: 0;
	background: transparent;
	color: inherit;
	font: 22px/1 "Gotham Bold", Arial, sans-serif;
	padding: 0;
	width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.shop-page .addtocart {
	height: 42px;
	width: 100%;
	min-width: 0;
	border: 0;
	border-radius: 999px;
	background: var(--gw-green);
	color: #fff;
	font: 16px/1 "Gotham Bold", Arial, sans-serif;
	padding: 0 16px;
}
.shop-page .addtocart.is-added { transform: scale(1.04); }
@media (max-width: 389px) {
	.shop-page { padding: 16px; }
	.shop-page .shop-products { grid-template-columns: 1fr; }
	.shop-page .productcontainer {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}
	.shop-page .productactions { grid-template-columns: 1fr; }
}

/* ---------- Cart modal ---------- */
.modal-backdrop.show { opacity: .32; }
#cartmodal .modal-dialog {
	max-width: 588px;
	margin-top: 96px;
}
#cartmodal .modal-content,
#imagemodal .modal-content,
#sendmodal .modal-content {
	border: 0;
	border-radius: 12px;
	padding: 22px 26px 25px;
	box-shadow: 0 20px 46px rgba(0,0,0,.18);
}
#cartmodal .modal-header,
#imagemodal .modal-header,
#sendmodal .modal-header {
	border: 0;
	padding: 0 0 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
#cartmodal .modal-title,
#sendmodal .modal-title {
	font: 20px/1.1 "Gotham Bold", Arial, sans-serif;
	margin: 0;
}
#cartmodal .btn-close,
#imagemodal .btn-close,
#sendmodal .btn-close {
	background: none;
	width: auto;
	height: auto;
	font-size: 34px;
	line-height: 1;
	opacity: 1;
	padding: 0;
	margin: 0;
}
#cartmodal .btn-close:before,
#imagemodal .btn-close:before,
#sendmodal .btn-close:before { content: '×'; }
#cartmodal .modal-body,
#imagemodal .modal-body,
#sendmodal .modal-body { padding: 0; }
#carttablebody {
	display: flex;
	flex-direction: column;
}
.cart-item {
	display: grid;
	grid-template-columns: 92px 1fr auto;
	gap: 22px;
	align-items: center;
	padding: 18px 0;
	border-bottom: 1px solid var(--gw-line);
}
.cart-item:first-child { padding-top: 6px; }
.cart-item-image {
	width: 86px;
	height: 86px;
	object-fit: contain;
}
.cart-item-main h4 {
	font: 22px/1.1 "Gotham Bold", Arial, sans-serif;
	margin: 0 0 4px;
}
.cart-item-main p {
	font-size: 15px;
	line-height: 1.2;
	margin: 0 0 10px;
}
.cart-row-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}
.qty-control-small {
	height: 32px;
	min-width: 98px;
	border: 2px solid var(--gw-green);
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 9px;
	padding: 0 12px;
	color: var(--gw-green);
	background: #fff;
	font: 14px/1 "Gotham Bold", Arial, sans-serif;
}
.cartdelete {
	border: 0;
	background: transparent;
	font-size: 17px;
	padding: 0;
	color: var(--gw-text);
}
.cart-item-price {
	min-width: 92px;
	text-align: right;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.cart-item-price strong { font: 20px/1 "Gotham Bold", Arial, sans-serif; }
.cart-item-price span { font-size: 12px; }
.cart-summary {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: 18px 0 22px;
	font-size: 15px;
}
.cart-summary strong {
	font-family: "Gotham Bold", Arial, sans-serif;
	font-size: 22px;
}
.cart-summary span { font-size: 12px; }
.cart-next { margin-left: auto; display: flex; }
.cart-empty {
	padding: 30px 0;
	text-align: center;
	border-bottom: 1px solid var(--gw-line);
}

/* ---------- Product modal ---------- */
#imagemodal .modal-dialog {
	max-width: 588px;
	margin-top: 96px;
}
#imagemodal .modal-header { border-bottom: 1px solid var(--gw-line); }
.product-modal-icon {
	font-size: 26px;
	color: var(--gw-text);
}
.product-modal-body {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 24px;
	align-items: center;
	padding-top: 22px !important;
}
.product-modal-imagewrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 180px;
	height: 180px;
}
.product-modal-imagewrap img,
#imagemodal #productimage {
	max-width: 180px !important;
	max-height: 180px !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
}
.product-modal-copy h3 {
	font: 24px/1.1 "Gotham Bold", Arial, sans-serif;
	margin: 0 0 5px;
}
.product-modal-copy p {
	font-size: 16px;
	line-height: 1.25;
	margin: 0 0 20px;
}
.product-modal-price {
	border-top: 1px solid var(--gw-line);
	padding-top: 15px;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
}
.product-modal-price strong { font: 22px/1 "Gotham Bold", Arial, sans-serif; }
.product-modal-price span { font-size: 14px; color: var(--gw-muted); }

/* ---------- COMPANY: fully scoped ---------- */
.company-page {
	min-height: 100vh;
	padding: 38px 40px 46px;
	background: var(--gw-bg);
}
.company-page .company-header {
	width: min(760px, 100%);
	margin: 0 auto 20px;
	position: static;
	background: transparent;
	padding: 0;
}
.company-page .shopcontainer {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	cursor: pointer;
}
.company-page .page-title {
	font: 20px/1.1 "Gotham Bold", Arial, sans-serif;
}
.company-page .shop-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}
.company-page #carticon { font-size: 34px; }
.company-wrap {
	width: min(760px, 100%);
	margin: 0 auto;
}
.company-intro { margin-bottom: 18px; }
.company-intro h1 {
	font: 38px/1.05 Gotham, Arial, sans-serif;
	letter-spacing: -.8px;
	margin: 0 0 8px;
}
.company-intro p {
	font-size: 17px;
	line-height: 1.4;
	margin: 0;
}
.company-card {
	background: #fff;
	border-radius: 20px;
	padding: 24px;
	box-shadow: 0 18px 36px rgba(0,0,0,.08);
}
.company-card .inputstack {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.company-card .inputcontainer {
	width: 100%;
	margin: 0;
	background: #fff;
	border: 1px solid #d3d3d3;
	border-radius: 14px;
	padding: 12px 14px;
}
.company-card .inputcontainerheader {
	font-size: 12px;
	margin-bottom: 6px;
	display: flex;
	justify-content: space-between;
}
.company-card .headerinput {
	color: #666;
	font-family: "Gotham Bold", Arial, sans-serif;
}
.company-card .headerdelete { display: none; }
.company-card .input {
	width: 100%;
	border: 0;
	outline: 0;
	background: transparent;
	font-size: 16px;
	color: var(--gw-text);
	padding: 0;
}
.company-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
}
.company-actions .button,
.company-actions .button-secondary { margin: 0; }

/* ---------- CHECKOUT: fully scoped ---------- */
.checkout-page {
	min-height: 100vh;
	padding: 38px 40px 46px;
	background: var(--gw-bg);
}
.checkout-wrap {
	width: min(1040px, 100%);
	margin: 0 auto;
}
.checkout-intro-block { margin-bottom: 24px; }
.checkout-intro-block h1 {
	font: 42px/1.05 Gotham, Arial, sans-serif;
	letter-spacing: -.8px;
	margin: 0 0 10px;
}
.checkout-intro-block p {
	font-size: 17px;
	line-height: 1.45;
	margin: 0;
	max-width: 900px;
}
.checkout-grid-fixed {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: 24px;
	align-items: start;
}
.checkout-card-fixed {
	background: #fff;
	border-radius: 20px;
	padding: 24px 26px;
	box-shadow: 0 18px 36px rgba(0,0,0,.08);
}
.checkout-card-fixed h2 {
	font: 26px/1.1 "Gotham Bold", Arial, sans-serif;
	margin: 0 0 18px;
}
.checkout-field-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.checkout-field-row {
	display: grid;
	grid-template-columns: 165px minmax(0,1fr);
	gap: 16px;
	align-items: start;
	padding-bottom: 10px;
	border-bottom: 1px solid #ececec;
	font-size: 15px;
	line-height: 1.3;
}
.checkout-field-row:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.checkout-field-row strong {
	font-family: "Gotham Bold", Arial, sans-serif;
}
.checkout-field-row span {
	text-align: right;
	word-break: break-word;
}
.checkout-order-list {
	display: flex;
	flex-direction: column;
}
.checkout-order-row {
	display: grid;
	grid-template-columns: 74px minmax(0,1fr) auto;
	gap: 16px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid #ececec;
}
.checkout-order-row:first-child { padding-top: 0; }
.checkout-order-row img {
	width: 70px;
	height: 70px;
	object-fit: contain;
}
.checkout-order-copy {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.checkout-order-copy strong {
	font: 18px/1.15 "Gotham Bold", Arial, sans-serif;
}
.checkout-order-copy span {
	font-size: 14px;
	line-height: 1.25;
	color: var(--gw-muted);
}
.checkout-order-copy small {
	font-size: 13px;
	margin-top: 5px;
}
.checkout-order-price {
	font: 18px/1 "Gotham Bold", Arial, sans-serif;
	white-space: nowrap;
	text-align: right;
}
.checkout-total-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 18px;
	padding-top: 18px;
	font-size: 16px;
}
.checkout-total-row strong {
	font: 24px/1 "Gotham Bold", Arial, sans-serif;
	white-space: nowrap;
}
.checkout-actions-fixed {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 24px;
}
.checkout-actions-fixed .button,
.checkout-actions-fixed .button-secondary { margin: 0; }

@media (max-width: 860px) {
	.checkout-grid-fixed { grid-template-columns: 1fr; }
	.checkout-intro-block h1 { font-size: 34px; }
}
@media (max-width: 620px) {
	#cartmodal .modal-dialog,
	#imagemodal .modal-dialog,
	#sendmodal .modal-dialog { margin: 16px; }
	.cart-item { grid-template-columns: 72px 1fr; gap: 14px; }
	.cart-item-price { grid-column: 2; text-align: left; }
	.cart-item-image { width: 66px; height: 66px; }
	.product-modal-body { grid-template-columns: 1fr; }
	.product-modal-imagewrap { width: 100%; }
	.company-page,
	.checkout-page { padding: 24px 16px 34px; }
	.company-actions,
	.checkout-actions-fixed {
		flex-direction: column;
		align-items: stretch;
	}
	.company-actions .button,
	.company-actions .button-secondary,
	.checkout-actions-fixed .button,
	.checkout-actions-fixed .button-secondary { width: 100%; }
	.checkout-field-row {
		grid-template-columns: 1fr;
		gap: 3px;
	}
	.checkout-field-row span { text-align: left; }
	.checkout-order-row {
		grid-template-columns: 58px 1fr;
		gap: 12px;
	}
	.checkout-order-row img { width: 54px; height: 54px; }
	.checkout-order-price { grid-column: 2; text-align: left; }
}

/* ---------- FINAL SCOPED FIX: COMPANY + CHECKOUT ONLY ---------- */
.company-page .company-header,
.company-page .company-wrap,
.checkout-page .checkout-wrap {
	width: min(760px, 100%);
	margin-left: auto;
	margin-right: auto;
}

.company-page .company-header {
	margin-bottom: 20px;
}

.company-page .shopcontainer {
	justify-content: space-between;
}

.company-page .company-actions,
.checkout-page .checkout-actions-fixed {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
}

.company-page .button,
.company-page .button-secondary,
.checkout-page .button,
.checkout-page .button-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	min-width: 140px;
	padding: 0 26px;
	border-radius: 999px;
	font: 16px/1 "Gotham Bold", Arial, sans-serif;
	text-decoration: none;
	cursor: pointer;
}

.company-page .button,
.checkout-page .button {
	border: 0;
	background: var(--gw-green);
	color: #fff;
}

.company-page .button-secondary,
.checkout-page .button-secondary {
	border: 2px solid var(--gw-green);
	background: #fff;
	color: var(--gw-green);
}

.checkout-page .checkout-wrap {
	width: min(760px, 100%);
}

.checkout-page .checkout-intro-block p {
	max-width: 760px;
}

.checkout-page .checkout-grid-fixed {
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: stretch;
}

.checkout-page .checkout-card-fixed {
	width: 100%;
}

.checkout-page .checkout-field-row {
	grid-template-columns: 190px minmax(0, 1fr);
}

.checkout-page .checkout-order-row {
	grid-template-columns: 74px minmax(0, 1fr) auto;
}

@media (max-width: 620px) {
	.company-page .company-actions,
	.checkout-page .checkout-actions-fixed {
		flex-direction: column;
		align-items: stretch;
	}

	.company-page .button,
	.company-page .button-secondary,
	.checkout-page .button,
	.checkout-page .button-secondary {
		width: 100%;
	}

	.checkout-page .checkout-field-row,
	.checkout-page .checkout-order-row {
		grid-template-columns: 1fr;
	}

	.checkout-page .checkout-field-row span,
	.checkout-page .checkout-order-price {
		text-align: left;
	}
}
