/* CAMUK Shop — brand layer over Astra + WooCommerce.
   Tokens copied from camuk.net so the shop matches the main site. */
:root {
	--teal: #0f5e5a;
	--teal-deep: #0a4441;
	--yellow: #f4c430;
	--red: #ef5a4a;
	--bone: #fafaf7;
	--sand: #e9e6dc;
	--white: #ffffff;
	--rule: rgba(15, 94, 90, 0.12);
	--rule-strong: rgba(15, 94, 90, 0.28);
	--muted: rgba(15, 94, 90, 0.78);
	--display: 'Cormorant Garamond', 'Times New Roman', serif;
	--serif: 'Instrument Serif', Georgia, serif;
	--sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--mono: 'JetBrains Mono', ui-monospace, monospace;
	--pad: clamp(16px, 5vw, 96px);
	--maxw: 1480px;
}

/* ---------- Base ---------- */
body,
button,
input,
select,
textarea {
	font-family: var(--sans);
}
body {
	background: var(--bone);
	color: var(--teal);
}
h1, h2, h3, h4, h5, h6,
.entry-title,
.woocommerce-loop-product__title,
.product_title {
	font-family: var(--display);
	font-weight: 400;
	color: var(--teal);
	text-wrap: balance;
}
a { color: var(--teal); }
a:hover, a:focus { color: var(--teal-deep); }
:focus-visible { outline: 2px solid var(--yellow); outline-offset: 2px; }

.camuk-wrap {
	max-width: var(--maxw);
	margin: 0 auto;
	padding-left: max(var(--pad), env(safe-area-inset-left, 0px));
	padding-right: max(var(--pad), env(safe-area-inset-right, 0px));
	box-sizing: border-box;
}

/* Let the home page run full width; Astra boxes everything by default. */
.home .site-content > .ast-container,
.home #content > .ast-container {
	max-width: none;
	padding: 0;
	display: block;
}

/* ---------- Type helpers ---------- */
.camuk-eyebrow {
	display: block;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.camuk-eyebrow--yellow { color: var(--yellow); }
.camuk-eyebrow--red { color: var(--red); }
.camuk-display {
	margin: 0;
	font-family: var(--display);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.01em;
}
.camuk-display em {
	font-family: var(--serif);
	font-style: italic;
}
.camuk-display--xl { font-size: clamp(52px, 7vw, 108px); line-height: 0.95; }
.camuk-display--lg { font-size: clamp(38px, 4.5vw, 64px); }
.camuk-display--md { font-size: 40px; font-weight: 500; }
.camuk-lede { font-size: 18px; max-width: 520px; margin: 0; }

/* ---------- Buttons ---------- */
.camuk-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.camuk-btn,
.camuk-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: 999px;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.camuk-btn { min-height: 52px; padding: 0 28px; font-weight: 600; }
.camuk-pill {
	min-height: 44px;
	padding: 0 18px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.camuk-btn--yellow, .camuk-pill--yellow { background: var(--yellow); color: var(--teal-deep); }
.camuk-btn--yellow:hover, .camuk-pill--yellow:hover { background: #ffd34d; color: var(--teal-deep); }
.camuk-btn--ghost, .camuk-pill--ghost { border: 1px solid rgba(255, 255, 255, 0.4); color: var(--white); }
.camuk-btn--ghost:hover, .camuk-pill--ghost:hover { background: rgba(255, 255, 255, 0.08); color: var(--white); }
.camuk-link { font-weight: 600; text-underline-offset: 4px; }

/* WooCommerce buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button,
.single_add_to_cart_button {
	background: var(--teal) !important;
	color: var(--white) !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: var(--sans) !important;
	font-weight: 600 !important;
	min-height: 52px;
	padding: 0 28px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.single_add_to_cart_button:hover { background: var(--teal-deep) !important; }

/* ---------- Header ---------- */
.camuk-header { background: var(--teal); color: var(--white); }
.camuk-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-top: 18px;
	padding-bottom: 18px;
}
.camuk-brand { display: flex; align-items: center; gap: 12px; color: var(--white); text-decoration: none; }
.camuk-brand:hover { color: var(--white); }
.camuk-brand img { width: 44px; height: 44px; object-fit: contain; }
.camuk-brand span { font-family: var(--display); font-size: 22px; letter-spacing: 0.02em; }
.camuk-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.camuk-nav a { color: var(--white); text-decoration: none; padding: 12px 0; }
.camuk-nav a:hover { color: var(--yellow); }
.camuk-nav a.is-current { color: var(--yellow); box-shadow: inset 0 -1px 0 var(--yellow); }
.camuk-header__actions { display: flex; gap: 12px; align-items: center; }

/* ---------- Bands ---------- */
.camuk-band--teal { background: var(--teal); color: var(--white); }
.camuk-band--deep { background: var(--teal-deep); color: var(--white); }
.camuk-band--yellow { background: var(--yellow); color: var(--teal-deep); }
.camuk-band--teal h1, .camuk-band--teal h2, .camuk-band--teal h3,
.camuk-band--deep h1, .camuk-band--deep h2, .camuk-band--deep h3 { color: var(--white); }
.camuk-band--teal .camuk-display em,
.camuk-band--deep .camuk-display em { color: var(--yellow); }
.camuk-band--teal p, .camuk-band--deep p { color: rgba(255, 255, 255, 0.86); }

/* ---------- Hero ---------- */
.camuk-hero__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: 56px;
	align-items: end;
	padding-top: 56px;
	padding-bottom: 88px;
}
.camuk-hero__text { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.camuk-hero__media { margin: 0; min-width: 0; }
.camuk-hero__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 6px; }

.camuk-photo-slot {
	display: flex;
	align-items: flex-end;
	aspect-ratio: 4 / 5;
	max-width: 100%;
	padding: 20px;
	box-sizing: border-box;
	border-radius: 6px;
	background: var(--teal-deep);
	color: rgba(255, 255, 255, 0.75);
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.camuk-photo-slot--wide { aspect-ratio: 3 / 2; }

/* ---------- Strip ---------- */
.camuk-strip {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 14px 40px;
	padding-top: 22px;
	padding-bottom: 22px;
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ---------- Sections ---------- */
.camuk-section { padding-top: 96px; padding-bottom: 40px; display: flex; flex-direction: column; gap: 40px; }
.camuk-section__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px; }
.camuk-section__head p { max-width: 420px; margin: 0; color: var(--muted); }
.camuk-section__head--rule { padding-bottom: 20px; border-bottom: 1px solid var(--rule); align-items: center; }

.camuk-stories {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
	gap: 32px;
}
.camuk-story-card { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.camuk-story-card p { margin: 0; max-width: 560px; color: var(--muted); }

.camuk-purpose {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 48px;
	padding-top: 88px;
	padding-bottom: 88px;
}
.camuk-purpose__item { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 1px solid rgba(244, 196, 48, 0.5); }
.camuk-purpose p { margin: 0; }

.camuk-info {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 32px;
	padding-top: 72px;
	padding-bottom: 88px;
}
.camuk-info p { margin: 8px 0 0; }

/* ---------- Product grid ---------- */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 40px 24px; margin: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	text-align: left !important;
	padding: 0 !important;
	background: transparent;
}
.woocommerce ul.products li.product img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 6px;
	background: var(--sand);
	margin-bottom: 14px !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--sans) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	padding: 2px 0 0 !important;
	color: var(--teal);
}
.woocommerce ul.products li.product .price {
	font-family: var(--mono);
	font-size: 14px !important;
	color: var(--teal) !important;
	font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .ast-woo-product-category { display: none; }
.woocommerce ul.products li.product .button { display: none !important; }

/* ---------- Single product ---------- */
.single-product div.product .product_title { font-size: clamp(40px, 4vw, 52px); font-weight: 500; line-height: 1; margin-top: 10px; }
.single-product div.product p.price,
.single-product div.product span.price {
	font-family: var(--mono);
	font-size: 22px !important;
	color: var(--teal) !important;
	font-variant-numeric: tabular-nums;
}
.single-product div.product .woocommerce-product-gallery img { border-radius: 6px; }
.single-product div.product .woocommerce-product-details__short-description { color: var(--muted); }

.camuk-fit-tip {
	margin: 0 0 16px;
	padding: 14px 16px;
	border-radius: 4px;
	background: rgba(244, 196, 48, 0.22);
	color: var(--teal-deep);
	font-size: 14px;
}
.camuk-pay-note { margin: 10px 0 0; font-size: 13px; color: var(--muted); }

.camuk-details {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 12px 24px;
	margin: 24px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--rule);
	font-size: 14px;
}
.camuk-details dt {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding-top: 2px;
	font-weight: 400;
}
.camuk-details dd { margin: 0; }

/* Size and colour buttons (Variation Swatches plugin) */
.variable-items-wrapper .variable-item:not(.radio-variable-item) {
	min-width: 52px;
	min-height: 52px;
	border-radius: 4px !important;
	box-shadow: 0 0 0 1px var(--rule-strong) !important;
}
.variable-items-wrapper .variable-item.selected:not(.radio-variable-item) {
	box-shadow: 0 0 0 2px var(--teal) !important;
}
.variable-items-wrapper .button-variable-item.selected { background: var(--teal) !important; color: var(--white) !important; }

/* Story band breaks out of the product container to run full width. */
.camuk-story {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-top: 64px;
	margin-bottom: 64px;
	clear: both;
}
.camuk-story__inner { display: flex; flex-direction: column; gap: 18px; padding-top: 88px; padding-bottom: 88px; }
.camuk-story__inner p { max-width: 640px; margin: 0; }
.camuk-story .camuk-display { font-size: clamp(38px, 4.5vw, 64px); }

/* ---------- Footer ---------- */
.camuk-footer { background: var(--teal); color: rgba(255, 255, 255, 0.8); }
.camuk-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 16px;
	padding-top: 40px;
	padding-bottom: 40px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---------- Small screens ---------- */
@media (max-width: 720px) {
	.camuk-nav { order: 3; width: 100%; gap: 4px 20px; }
	.camuk-hero__inner { padding-top: 32px; padding-bottom: 56px; gap: 32px; }
	.camuk-section { padding-top: 64px; }
}

@media (prefers-reduced-motion: reduce) {
	.camuk-btn, .camuk-pill { transition: none; }
}

/* ---------- Fixes found in preview ---------- */
/* Astra capitalises heading words; keep the copy as written. */
h1, h2, h3, h4, h5, h6, .entry-title, .product_title, .camuk-display { text-transform: none !important; }
/* Keep Bag and Donate on one line. */
.camuk-header__actions { flex-wrap: nowrap; }
.camuk-pill { white-space: nowrap; }
.camuk-footer a { color: rgba(255, 255, 255, 0.9); }
.camuk-story-card__img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; background: var(--sand); }
/* Astra adds a "& Free Shipping" label and a second category line; neither is right here. */
.single-product .ast-shipping-text,
.single-product .summary .single-product-category { display: none !important; }
/* Hero slideshow */
.camuk-hero .camuk-slide { padding-bottom: 32px; }
.camuk-hero .camuk-slide[hidden] { display: none; }
.camuk-hero .camuk-slide:not([hidden]) { animation: camuk-fade .5s ease; }
@keyframes camuk-fade { from { opacity: 0; } to { opacity: 1; } }
.camuk-slider__controls { display: flex; gap: 4px; padding-bottom: 56px; }
.camuk-slider__dot { width: 44px; height: 44px; padding: 0 !important; border: 0 !important; background: transparent !important; display: flex; align-items: center; justify-content: center; cursor: pointer; min-height: 0 !important; }
.camuk-slider__dot span { display: block; width: 10px; height: 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.45); transition: width .2s ease, background-color .2s ease; }
.camuk-slider__dot[aria-pressed="true"] span { width: 28px; background: var(--yellow); }
@media (prefers-reduced-motion: reduce) { .camuk-hero .camuk-slide:not([hidden]) { animation: none; } }
/* The header Bag button already does this job; hide Modern Cart's floating basket. */
#moderncart-floating-cart { display: none !important; }
/* Footer */
.camuk-trust { background: var(--sand); color: var(--teal-deep); }
.camuk-trust__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 20px 32px; padding-top: 28px; padding-bottom: 28px; font-size: 14px; }
.camuk-trust__inner > div { display: flex; align-items: center; gap: 12px; }
.camuk-trust__inner svg { flex: none; color: var(--teal); }
.camuk-trust strong { font-weight: 600; }
.camuk-footer { background: var(--teal-deep); color: rgba(255, 255, 255, 0.82); padding: 88px 0 28px; font-family: var(--sans); font-size: 15px; letter-spacing: normal; text-transform: none; }
.camuk-footer a { color: #ffffff; text-decoration: none; }
.camuk-footer a:hover, .camuk-footer a:focus-visible { color: var(--yellow); }
.camuk-footer__label { display: block; margin-bottom: 16px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #ffffff; }
.camuk-footer__label--yellow { color: var(--yellow); }
.camuk-footer__top { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px 80px; align-items: end; padding-bottom: 64px; border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.camuk-footer__statement { margin: 0; font-family: var(--display); font-weight: 400; font-size: clamp(48px, 6vw, 88px); line-height: 0.95; letter-spacing: -0.01em; color: #ffffff; }
.camuk-footer__statement em { font-family: var(--serif); color: var(--yellow); }
.camuk-signup { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.5); }
.camuk-signup:focus-within { border-bottom-color: var(--yellow); }
.camuk-signup input[type=email] { flex: 1; min-width: 0; min-height: 52px; padding: 0 !important; border: 0 !important; background: transparent !important; color: #ffffff !important; font: 400 17px var(--sans); box-shadow: none !important; outline: none; }
.camuk-signup input[type=email]::placeholder { color: rgba(255, 255, 255, 0.6); }
.camuk-signup button { min-height: 52px; padding: 0 0 0 12px !important; border: 0 !important; background: transparent !important; color: var(--yellow) !important; font: 500 12px var(--mono) !important; letter-spacing: 0.16em !important; text-transform: uppercase; cursor: pointer; }
.camuk-signup button:hover { color: #ffffff !important; }
.camuk-signup__trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.camuk-signup__note { margin: 12px 0 0; font-size: 13px; color: rgba(255, 255, 255, 0.7); }
.camuk-footer__links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; padding: 56px 0; }
.camuk-footer__links nav { display: flex; flex-direction: column; gap: 4px; }
.camuk-footer__links nav a { padding: 6px 0; font-size: 15px; }
.camuk-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, 0.16); font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.7); }
.camuk-footer__org { display: flex; align-items: center; gap: 16px; }
.camuk-footer__org img { width: 48px; height: 48px; object-fit: contain; flex: none; }
.camuk-footer__org div { display: flex; flex-direction: column; gap: 4px; }
.camuk-footer__stores { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.camuk-footer__stores img { height: 36px; width: auto; display: block; }
#ast-scroll-top { display: none !important; }
@media (max-width: 900px) { .camuk-footer__links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .camuk-footer { padding-top: 64px; } }
.ast-sticky-add-to-cart .button, .ast-sticky-add-to-cart .single_add_to_cart_button { display: inline-flex !important; align-items: center; justify-content: center; }
/* Every order gives back */
.camuk-impact { padding-bottom: 96px; }
.camuk-impact__head { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px 80px; align-items: end; }
.camuk-impact__head .camuk-eyebrow { margin-bottom: 16px; }
.camuk-impact__head em { font-family: var(--serif); font-style: italic; color: var(--red); }
.camuk-impact__intro p { margin: 0 0 14px; max-width: 520px; color: var(--muted); font-size: 17px; }
.camuk-impact__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; }
.camuk-impact__card { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.camuk-impact__card img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 6px; margin-bottom: 8px; background: var(--sand); }
.camuk-impact__card .camuk-eyebrow { color: var(--muted); }
.camuk-impact__card h3 { margin: 0; font-family: var(--display); font-weight: 500; font-size: 30px; line-height: 1.1; }
.camuk-impact__card p { margin: 0; color: var(--muted); }
.camuk-impact__card--next { justify-content: flex-end; gap: 16px; padding: 36px; border-radius: 6px; background: var(--teal); color: #ffffff; }
.camuk-impact__card--next h3 { color: #ffffff; font-size: 36px; }
.camuk-impact__card--next ul { margin: 0 0 8px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.camuk-impact__card--next li { padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, 0.2); color: rgba(255, 255, 255, 0.88); }
.camuk-impact__card--next .camuk-btn { align-self: flex-start; display: inline-flex; align-items: center; text-decoration: none; }
/* Astra adds 60px above and below #primary on plain pages; the home page runs edge to edge. */
.home #primary.camuk-home { margin-top: 0 !important; margin-bottom: 0 !important; }
