/* ===========================================================
   IVY AND JANE. Design System v2.
   ===========================================================
   Multi-brand umbrella ecommerce. Built on GeneratePress.
   =========================================================== */

/* ---------- Tokens --------------------------------------- */
:root {
	--ij-teal:        #33CCCC;
	--ij-teal-deep:   #0E7A7A;
	--ij-teal-darker: #094F4F;
	--ij-teal-soft:   #B6E6E6;
	--ij-teal-pale:   #E6F7F7;

	--ij-cream:       #FAF7F2;
	--ij-paper:       #FFFFFF;
	--ij-charcoal:    #1A2424;
	--ij-ink:         #2B3434;
	--ij-stone:       #6B7373;
	--ij-stone-soft:  #B7BCBC;
	--ij-line:        #E6E2D9;

	--ij-orange:      #E8551F;
	--ij-tan:         #A06A3F;

	--ij-font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--ij-font-sans:    'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
	--ij-font-script:  'Caveat', 'Brush Script MT', cursive;

	--ij-max:         1320px;
	--ij-max-narrow:   880px;
	--ij-gutter:        clamp(20px, 4vw, 56px);

	--ij-ease:         cubic-bezier(.2,.7,.2,1);
}

/* ---------- Reset & Parent overrides --------------------- */
.ij-themed,
.ij-themed body { background: var(--ij-cream); color: var(--ij-ink); font-family: var(--ij-font-sans); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }

.ij-themed .site,
.ij-themed .site-content,
.ij-themed .content-area,
.ij-themed .site-main,
.ij-themed .inside-article,
.ij-themed .entry-content { background: transparent !important; padding: 0 !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; max-width: none !important; }
.ij-themed .site-header,
.ij-themed .site-footer,
.ij-themed #masthead,
.ij-themed #colophon { display: none !important; }

.ij-themed .entry-content > * + * { margin-top: 0; }
.ij-themed h1, .ij-themed h2, .ij-themed h3, .ij-themed h4 { font-family: var(--ij-font-display); font-weight: 400; color: var(--ij-charcoal); letter-spacing: -.005em; }
.ij-themed a { color: inherit; text-decoration: none; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ij-skip-link { position: absolute; left: -9999px; top: 0; padding: 12px 16px; background: var(--ij-charcoal); color: #fff; z-index: 9999; }
.ij-skip-link:focus { left: 16px; top: 16px; }

/* ---------- Header --------------------------------------- */
.ij-header {
	background: rgba(250,247,242,.92);
	border-bottom: 1px solid var(--ij-line);
	position: sticky; top: 0; z-index: 100;
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
}
.ij-header__inner {
	max-width: var(--ij-max);
	margin: 0 auto;
	padding: 18px var(--ij-gutter);
	display: flex; align-items: center; justify-content: space-between; gap: 32px;
}
.ij-logo img { height: 38px; width: auto; display: block; }
@media (min-width: 768px) { .ij-logo img { height: 44px; } }

.ij-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 32px; align-items: center; }
.ij-nav__list a {
	font-family: var(--ij-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ij-ink);
	position: relative;
	padding: 8px 0;
	transition: color .25s var(--ij-ease);
}
.ij-nav__list a::after {
	content: ''; position: absolute; left: 0; right: 100%; bottom: 2px;
	height: 1px; background: var(--ij-teal-deep);
	transition: right .35s var(--ij-ease);
}
.ij-nav__list a:hover { color: var(--ij-teal-deep); }
.ij-nav__list a:hover::after { right: 0; }

.ij-nav__toggle { display: none; background: transparent; border: 0; padding: 10px; cursor: pointer; }
.ij-nav__toggle-bar { display: block; width: 24px; height: 1.5px; background: var(--ij-charcoal); margin: 5px 0; transition: transform .3s var(--ij-ease); }

@media (max-width: 767px) {
	.ij-nav__toggle { display: block; }
	.ij-nav__list {
		position: absolute; top: 100%; left: 0; right: 0;
		flex-direction: column; gap: 0;
		background: var(--ij-cream);
		border-bottom: 1px solid var(--ij-line);
		padding: 12px var(--ij-gutter) 24px;
		transform: translateY(-12px); opacity: 0; pointer-events: none;
		transition: opacity .25s var(--ij-ease), transform .25s var(--ij-ease);
	}
	.ij-nav.is-open .ij-nav__list { transform: none; opacity: 1; pointer-events: auto; }
	.ij-nav__list a { padding: 14px 0; border-bottom: 1px solid var(--ij-line); }
	.ij-nav__list li:last-child a { border-bottom: 0; }
}

/* ---------- Main wrapper --------------------------------- */
.ij-main { display: block; }
.ij-section { padding: clamp(64px, 9vw, 140px) 0; }
.ij-section--tight { padding: clamp(48px, 6vw, 96px) 0; }
.ij-container { max-width: var(--ij-max); margin: 0 auto; padding: 0 var(--ij-gutter); }
.ij-container--narrow { max-width: var(--ij-max-narrow); }

.ij-eyebrow {
	font-family: var(--ij-font-sans);
	font-size: 12px; font-weight: 600;
	letter-spacing: .24em; text-transform: uppercase;
	color: var(--ij-teal-deep);
	margin: 0 0 18px;
}

.ij-display { font-family: var(--ij-font-display); font-weight: 300; line-height: 1.06; color: var(--ij-charcoal); margin: 0; }
.ij-display--xl { font-size: clamp(2.6rem, 6.4vw, 5.8rem); letter-spacing: -.02em; }
.ij-display--lg { font-size: clamp(2.2rem, 4.8vw, 3.6rem); letter-spacing: -.015em; }
.ij-display--md { font-size: clamp(1.6rem, 3.4vw, 2.4rem); letter-spacing: -.005em; }

.ij-script { font-family: var(--ij-font-script); color: var(--ij-teal-deep); font-weight: 500; }

.ij-lede { font-size: clamp(17px, 1.4vw, 19px); color: var(--ij-stone); max-width: 56ch; line-height: 1.65; }

/* ---------- Buttons (one strong primary across the site) - */
.ij-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 15px 30px;
	font-family: var(--ij-font-sans);
	font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	border-radius: 0;
	cursor: pointer;
	transition: background .3s var(--ij-ease), color .3s var(--ij-ease), transform .3s var(--ij-ease), border-color .3s var(--ij-ease), box-shadow .3s var(--ij-ease);
	border: 1.5px solid var(--ij-teal-deep);
	background: var(--ij-teal-deep);
	color: #fff;
	box-shadow: 0 4px 14px -6px rgba(9,79,79,.5);
}
.ij-btn:hover {
	background: var(--ij-charcoal);
	border-color: var(--ij-charcoal);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px -6px rgba(26,36,36,.45);
	color: #fff;
}

/* Ghost button on cream / paper backgrounds */
.ij-btn--ghost {
	background: transparent;
	color: var(--ij-teal-deep);
	border-color: var(--ij-teal-deep);
	box-shadow: none;
}
.ij-btn--ghost:hover {
	background: var(--ij-teal-deep);
	color: #fff;
}

/* Ghost variant for dark backgrounds (hero, banner, charcoal blocks) */
.ij-btn--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255,255,255,.7);
	box-shadow: none;
}
.ij-btn--ghost-light:hover {
	background: #fff;
	color: var(--ij-charcoal);
	border-color: #fff;
}

.ij-btn .ij-btn__arrow { display: inline-block; transition: transform .3s var(--ij-ease); }
.ij-btn:hover .ij-btn__arrow { transform: translateX(4px); }

.ij-link {
	display: inline-flex; align-items: center; gap: 10px;
	font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	color: var(--ij-teal-deep);
	padding-bottom: 4px;
	border-bottom: 1px solid var(--ij-teal-deep);
	transition: color .25s var(--ij-ease), border-color .25s var(--ij-ease), gap .25s var(--ij-ease);
}
.ij-link:hover { color: var(--ij-charcoal); border-color: var(--ij-charcoal); gap: 14px; }

/* ---------- Hero (image-driven) -------------------------- */
.ij-hero {
	position: relative;
	min-height: clamp(560px, 80vh, 820px);
	display: grid;
	overflow: hidden;
	background: var(--ij-charcoal);
}
.ij-hero__bg {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	transform: scale(1.02);
}
.ij-hero__bg::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(105deg, rgba(26,36,36,.55) 0%, rgba(26,36,36,.15) 55%, rgba(26,36,36,0) 100%);
}
.ij-hero__inner {
	position: relative;
	z-index: 2;
	max-width: var(--ij-max);
	width: 100%;
	margin: 0 auto;
	padding: clamp(120px, 18vh, 200px) var(--ij-gutter) clamp(80px, 10vh, 140px);
	display: flex;
	align-items: center;
}
.ij-hero__copy { max-width: 620px; color: #fff; }
.ij-hero__eyebrow { color: rgba(255,255,255,.85); margin-bottom: 16px; }
.ij-hero__eyebrow,
.ij-hero__copy .ij-eyebrow { color: rgba(255,255,255,.85); }
.ij-hero__title {
	font-family: var(--ij-font-display);
	font-weight: 300;
	font-size: clamp(2.6rem, 6.4vw, 5.4rem);
	line-height: 1.04; letter-spacing: -.02em;
	color: #fff;
	margin: 0 0 24px;
	text-shadow: 0 1px 30px rgba(0,0,0,.18);
}
.ij-hero__title em { font-style: italic; color: #fff; }
.ij-hero__lede {
	font-size: clamp(17px, 1.4vw, 19px);
	color: rgba(255,255,255,.92);
	max-width: 50ch;
	margin: 0 0 36px;
	text-shadow: 0 1px 16px rgba(0,0,0,.18);
}
.ij-hero__cta { display: flex; gap: 16px; flex-wrap: wrap; }

/* ---------- Categories ---------------------------------- */
.ij-categories { padding: clamp(72px, 9vw, 120px) 0; }
.ij-categories__grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 14px;
}
@media (min-width: 700px) { .ij-categories__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@media (min-width: 1100px) { .ij-categories__grid { grid-template-columns: repeat(4, 1fr); gap: 18px; } }

.ij-cat {
	position: relative;
	display: block;
	color: inherit;
	overflow: hidden;
	border-radius: 4px;
	background: var(--ij-cream);
	aspect-ratio: 4 / 5;
}
.ij-cat__media {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform .8s var(--ij-ease);
}
.ij-cat:hover .ij-cat__media { transform: scale(1.04); }
.ij-cat__veil {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.45) 100%);
	transition: opacity .3s var(--ij-ease);
}
.ij-cat__body {
	position: absolute; inset: 0;
	padding: 24px;
	display: flex; flex-direction: column; justify-content: flex-end;
	color: #fff;
}
.ij-cat__sub {
	font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	color: rgba(255,255,255,.85);
	margin-bottom: 6px;
}
.ij-cat__title {
	font-family: var(--ij-font-display); font-weight: 400; font-size: 28px;
	line-height: 1.1; color: #fff; margin: 0;
}
.ij-cat__cta {
	margin-top: 14px;
	font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	color: #fff;
	border-bottom: 1px solid rgba(255,255,255,.6);
	padding-bottom: 4px; align-self: flex-start;
	transition: border-color .25s var(--ij-ease);
}
.ij-cat:hover .ij-cat__cta { border-color: #fff; }

/* When the category is a soft-illustration (no veil needed) */
.ij-cat--light .ij-cat__veil { display: none; }
.ij-cat--light .ij-cat__body { color: var(--ij-charcoal); }
.ij-cat--light .ij-cat__sub { color: var(--ij-stone); }
.ij-cat--light .ij-cat__title { color: var(--ij-charcoal); }
.ij-cat--light .ij-cat__cta { color: var(--ij-charcoal); border-color: var(--ij-charcoal); }

/* ---------- Feature row (refined replacement for marquee) - */
.ij-credibility {
	background: var(--ij-paper);
	border-top: 1px solid var(--ij-line);
	border-bottom: 1px solid var(--ij-line);
	padding: 36px 0;
}
.ij-credibility__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	max-width: var(--ij-max);
	margin: 0 auto;
	padding: 0 var(--ij-gutter);
	align-items: center;
}
@media (min-width: 800px) { .ij-credibility__grid { grid-template-columns: repeat(4, 1fr); gap: 32px; } }
.ij-cred {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 0 4px;
	border-right: 1px solid var(--ij-line);
}
.ij-cred:last-child { border-right: 0; }
@media (max-width: 799px) { .ij-cred:nth-child(2n) { border-right: 0; } }
.ij-cred__icon {
	width: 28px; height: 28px;
	color: var(--ij-teal-deep);
	margin-bottom: 6px;
}
.ij-cred__title {
	font-family: var(--ij-font-display);
	font-size: 18px;
	color: var(--ij-charcoal);
	font-weight: 500;
	line-height: 1.2;
}
.ij-cred__copy { font-size: 13px; color: var(--ij-stone); line-height: 1.5; }

/* ---------- Feature: Harsh Gear ------------------------- */
.ij-feature {
	position: relative;
	overflow: hidden;
}
.ij-feature__grid { display: grid; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 900px) { .ij-feature__grid { grid-template-columns: 1.1fr .9fr; } }
.ij-feature__media {
	position: relative;
	min-height: 460px;
	background-size: cover;
	background-position: center;
}
.ij-feature__copy {
	background: var(--ij-charcoal);
	color: #fff;
	padding: clamp(48px, 8vw, 96px) clamp(24px, 5vw, 80px);
	display: flex; flex-direction: column; justify-content: center;
}
.ij-feature__copy .ij-eyebrow { color: var(--ij-teal); }
.ij-feature__copy h2 { color: #fff; max-width: 18ch; }
.ij-feature__copy p { color: rgba(255,255,255,.78); font-size: 17px; line-height: 1.7; max-width: 46ch; margin: 24px 0 32px; }
.ij-feature__cta { display: flex; gap: 16px; flex-wrap: wrap; }

/* ---------- Product grid --------------------------------- */
.ij-shop-head { padding: clamp(80px, 10vw, 140px) 0 32px; text-align: left; }
.ij-shop-head__inner { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) { .ij-shop-head__inner { grid-template-columns: 1fr 1fr; align-items: end; } }

.ij-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 56px 32px;
}
@media (min-width: 600px) { .ij-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .ij-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1280px) { .ij-grid { grid-template-columns: repeat(4, 1fr); } }

.ij-card { display: block; color: inherit; }
.ij-card__media {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 4px;
	background: #fff;
	border: 1px solid var(--ij-line);
	transition: transform .5s var(--ij-ease), box-shadow .5s var(--ij-ease), border-color .5s var(--ij-ease);
}
.ij-card__media img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .8s var(--ij-ease);
}
.ij-card:hover .ij-card__media { transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(14,122,122,.18); border-color: var(--ij-teal-soft); }
.ij-card:hover .ij-card__media img { transform: scale(1.04); }

.ij-card__body { padding: 22px 4px 0; display: flex; flex-direction: column; gap: 6px; }
.ij-card__title { font-family: var(--ij-font-display); font-size: 22px; line-height: 1.2; color: var(--ij-charcoal); margin: 0; font-weight: 400; }
.ij-card__sub { font-family: var(--ij-font-sans); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ij-stone); }
.ij-card__price { font-family: var(--ij-font-sans); font-size: 14px; color: var(--ij-charcoal); margin-top: 4px; font-weight: 500; }
.ij-card__brand { font-family: var(--ij-font-sans); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--ij-teal-deep); font-weight: 700; }

/* ---------- Single product page -------------------------- */
.ij-product__layout {
	display: grid; grid-template-columns: 1fr; gap: clamp(32px, 5vw, 80px);
	padding: clamp(40px, 6vw, 80px) 0;
}
@media (min-width: 900px) { .ij-product__layout { grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: start; } }
.ij-product__gallery { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 600px) { .ij-product__gallery { grid-template-columns: 1fr 1fr; } }
.ij-product__media {
	aspect-ratio: 1 / 1;
	border-radius: 4px;
	background: #fff;
	border: 1px solid var(--ij-line);
	overflow: hidden;
}
.ij-product__media:first-child { aspect-ratio: 4 / 5; grid-column: 1 / -1; }
.ij-product__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ij-product__info { position: sticky; top: 100px; }
.ij-product__brand { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--ij-teal-deep); font-weight: 700; margin: 0 0 8px; }
.ij-product__title { font-family: var(--ij-font-display); font-weight: 300; font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1.1; margin: 0 0 8px; color: var(--ij-charcoal); }
.ij-product__sub { font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--ij-stone); margin: 0 0 16px; }
.ij-product__price { font-size: 22px; color: var(--ij-charcoal); margin: 0 0 24px; font-weight: 500; }
.ij-product__desc { color: var(--ij-stone); font-size: 16px; line-height: 1.7; margin: 0 0 32px; }

.ij-swatches { display: flex; gap: 12px; margin: 0 0 16px; flex-wrap: wrap; }
.ij-swatch {
	width: 36px; height: 36px; border-radius: 50%;
	border: 1.5px solid var(--ij-line);
	cursor: pointer;
	position: relative;
	transition: transform .25s var(--ij-ease), border-color .25s var(--ij-ease);
}
.ij-swatch[data-active="1"], .ij-swatch:hover { border-color: var(--ij-charcoal); }
.ij-swatch[data-active="1"]::after { content: ''; position: absolute; inset: -6px; border: 1px solid var(--ij-charcoal); border-radius: 50%; }

.ij-qty { display: inline-flex; align-items: center; gap: 0; border: 1px solid var(--ij-line); }
.ij-qty button { width: 40px; height: 44px; background: transparent; border: 0; cursor: pointer; font-size: 18px; color: var(--ij-charcoal); }
.ij-qty input { width: 48px; height: 44px; border: 0; text-align: center; font-family: var(--ij-font-sans); font-size: 16px; background: transparent; }
.ij-qty input:focus { outline: none; }

.ij-product__actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 32px; }
.ij-product__details { border-top: 1px solid var(--ij-line); padding-top: 24px; }
.ij-product__details summary { cursor: pointer; padding: 14px 0; font-family: var(--ij-font-sans); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ij-charcoal); border-bottom: 1px solid var(--ij-line); list-style: none; display: flex; justify-content: space-between; align-items: center; font-weight: 600; }
.ij-product__details summary::-webkit-details-marker { display: none; }
.ij-product__details summary::after { content: '+'; font-size: 20px; color: var(--ij-stone); transition: transform .3s var(--ij-ease); }
.ij-product__details[open] summary::after { transform: rotate(45deg); }
.ij-product__details p, .ij-product__details ul { padding: 12px 0 18px; color: var(--ij-stone); font-size: 15px; line-height: 1.7; }
.ij-product__details ul { list-style: none; margin: 0; }
.ij-product__details li { padding: 4px 0; padding-left: 18px; position: relative; }
.ij-product__details li::before { content: ''; position: absolute; left: 0; top: 14px; width: 8px; height: 1px; background: var(--ij-teal-deep); }

/* ---------- Editorial / About ---------------------------- */
.ij-editorial { background: var(--ij-paper); }
.ij-editorial__grid { display: grid; grid-template-columns: 1fr; gap: 48px; }
@media (min-width: 900px) { .ij-editorial__grid { grid-template-columns: 1fr 1.4fr; gap: 96px; } }
.ij-editorial__title { position: sticky; top: 100px; }
.ij-editorial__body { font-size: 17px; line-height: 1.8; color: var(--ij-ink); }
.ij-editorial__body p { margin: 0 0 1.4em; }
.ij-editorial__body p:first-of-type::first-letter {
	font-family: var(--ij-font-display);
	font-size: 4.4em; line-height: .88; float: left;
	color: var(--ij-teal-deep);
	padding: 4px 12px 0 0;
}

.ij-quote { font-family: var(--ij-font-display); font-style: italic; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.4; color: var(--ij-charcoal); padding: 40px 0; border-top: 1px solid var(--ij-line); border-bottom: 1px solid var(--ij-line); margin: 32px 0; }
.ij-quote cite { display: block; font-style: normal; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ij-stone); font-family: var(--ij-font-sans); margin-top: 16px; }

/* ---------- Pillars / Values ----------------------------- */
.ij-pillars { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 64px; }
@media (min-width: 720px) { .ij-pillars { grid-template-columns: repeat(3, 1fr); gap: 48px; } }
.ij-pillar h3 { font-family: var(--ij-font-display); font-size: 22px; margin: 0 0 12px; color: var(--ij-charcoal); font-weight: 400; }
.ij-pillar p { color: var(--ij-stone); font-size: 15px; line-height: 1.7; margin: 0; }
.ij-pillar__num { font-family: var(--ij-font-script); font-size: 32px; color: var(--ij-teal-deep); display: block; margin-bottom: 4px; }

/* ---------- Testimonials --------------------------------- */
.ij-testimonials {
	background: var(--ij-cream);
	padding: clamp(72px, 10vw, 140px) 0;
	border-top: 1px solid var(--ij-line);
}
.ij-testimonials__head {
	text-align: center;
	margin-bottom: 56px;
}
.ij-testimonials__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	max-width: var(--ij-max);
	margin: 0 auto;
	padding: 0 var(--ij-gutter);
}
@media (min-width: 800px) { .ij-testimonials__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .ij-testimonials__grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }

.ij-testimonial {
	background: var(--ij-paper);
	border: 1px solid var(--ij-line);
	padding: 40px 28px;
	display: flex; flex-direction: column;
	border-radius: 4px;
	transition: border-color .35s var(--ij-ease);
}
.ij-testimonial:hover { border-color: var(--ij-teal-soft); }
.ij-testimonial__stars {
	display: flex; gap: 4px;
	margin-bottom: 18px;
	color: var(--ij-teal-deep);
	font-size: 14px;
	letter-spacing: 2px;
}
.ij-testimonial__quote {
	font-family: var(--ij-font-display);
	font-size: 20px;
	line-height: 1.4;
	color: var(--ij-charcoal);
	font-weight: 400;
	margin: 0 0 24px;
	flex-grow: 1;
}
.ij-testimonial__author {
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ij-stone);
	font-weight: 600;
	margin: 0;
}

/* ---------- Newsletter ---------------------------------- */
.ij-newsletter {
	background: var(--ij-paper);
	padding: clamp(72px, 10vw, 120px) 0;
	border-top: 1px solid var(--ij-line);
	border-bottom: 1px solid var(--ij-line);
	text-align: center;
}
.ij-newsletter__inner {
	max-width: 640px;
	margin: 0 auto;
	padding: 0 var(--ij-gutter);
}
.ij-newsletter__form {
	display: flex;
	gap: 0;
	margin-top: 32px;
	border-bottom: 1px solid var(--ij-charcoal);
}
.ij-newsletter__form input {
	flex: 1;
	background: transparent;
	border: 0;
	font-family: var(--ij-font-sans);
	font-size: 16px;
	padding: 14px 0;
	color: var(--ij-charcoal);
}
.ij-newsletter__form input:focus { outline: none; }
.ij-newsletter__form input::placeholder { color: var(--ij-stone); }
.ij-newsletter__form button {
	background: transparent; border: 0;
	font-family: var(--ij-font-sans); font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	color: var(--ij-charcoal);
	cursor: pointer;
	padding: 0 16px;
	transition: color .25s var(--ij-ease);
}
.ij-newsletter__form button:hover { color: var(--ij-teal-deep); }
.ij-newsletter__thanks { margin-top: 12px; font-size: 14px; color: var(--ij-teal-deep); }

/* ---------- CTA banner (replaces marquee) --------------- */
.ij-banner {
	position: relative;
	overflow: hidden;
	min-height: 360px;
	display: grid;
	background: var(--ij-charcoal);
}
.ij-banner__bg {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
}
.ij-banner__bg::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(120deg, rgba(26,36,36,.65) 0%, rgba(26,36,36,.2) 100%);
}
.ij-banner__inner {
	position: relative;
	z-index: 2;
	max-width: var(--ij-max);
	width: 100%;
	margin: 0 auto;
	padding: clamp(64px, 8vw, 100px) var(--ij-gutter);
	display: flex; flex-direction: column;
	align-items: flex-start; justify-content: center;
}
.ij-banner__title {
	font-family: var(--ij-font-display); font-weight: 300;
	font-size: clamp(2rem, 4vw, 3.2rem);
	color: #fff;
	line-height: 1.1;
	margin: 0 0 14px;
	max-width: 16ch;
}
.ij-banner__sub { color: rgba(255,255,255,.85); font-size: 16px; max-width: 40ch; margin: 0 0 28px; }

/* ---------- Contact -------------------------------------- */
.ij-contact { display: grid; grid-template-columns: 1fr; gap: 64px; align-items: start; }
@media (min-width: 900px) { .ij-contact { grid-template-columns: 1fr 1.2fr; gap: 96px; } }
.ij-contact__info p { margin: 0 0 16px; color: var(--ij-stone); }
.ij-contact__info strong { display: block; font-family: var(--ij-font-display); font-size: 22px; color: var(--ij-charcoal); font-weight: 400; margin-bottom: 4px; }

.ij-form { display: grid; gap: 20px; }
.ij-form label { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ij-stone); font-weight: 600; }
.ij-field { display: grid; gap: 6px; }
.ij-form input,
.ij-form textarea {
	width: 100%;
	font-family: var(--ij-font-sans); font-size: 16px;
	background: transparent;
	border: 0; border-bottom: 1px solid var(--ij-line);
	padding: 12px 0;
	color: var(--ij-charcoal);
	transition: border-color .25s var(--ij-ease);
}
.ij-form input:focus, .ij-form textarea:focus { outline: none; border-bottom-color: var(--ij-teal-deep); }
.ij-form textarea { min-height: 140px; resize: vertical; }
.ij-form__actions { margin-top: 12px; }

.ij-notice { padding: 18px 24px; background: var(--ij-teal-pale); border-left: 3px solid var(--ij-teal-deep); color: var(--ij-charcoal); }

/* ---------- Footer --------------------------------------- */
.ij-footer { background: var(--ij-charcoal); color: #C7CECE; margin-top: 0; }
.ij-footer__inner {
	max-width: var(--ij-max);
	margin: 0 auto;
	padding: clamp(56px, 7vw, 96px) var(--ij-gutter);
	display: grid; grid-template-columns: 1fr; gap: 48px;
}
@media (min-width: 900px) { .ij-footer__inner { grid-template-columns: 1.1fr 2fr; } }
.ij-footer__logo img { height: 38px; filter: brightness(0) invert(1); opacity: .92; }
.ij-footer__tag { font-family: var(--ij-font-display); font-style: italic; color: #C7CECE; margin: 18px 0 0; max-width: 320px; }

.ij-footer__nav { display: grid; grid-template-columns: 1fr; gap: 36px; }
@media (min-width: 600px) { .ij-footer__nav { grid-template-columns: repeat(3, 1fr); gap: 48px; } }
.ij-footer__nav h4 { font-family: var(--ij-font-sans); font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #fff; margin: 0 0 18px; }
.ij-footer__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ij-footer__nav a { color: #C7CECE; font-size: 15px; transition: color .2s var(--ij-ease); }
.ij-footer__nav a:hover { color: var(--ij-teal); }

.ij-footer__signup { display: flex; align-items: center; border-bottom: 1px solid #3B4444; padding-bottom: 8px; position: relative; }
.ij-footer__signup input { flex: 1; background: transparent; border: 0; color: #fff; font-family: var(--ij-font-sans); font-size: 15px; padding: 10px 0; }
.ij-footer__signup input::placeholder { color: #6B7373; }
.ij-footer__signup input:focus { outline: none; }
.ij-footer__signup button { background: transparent; border: 0; color: #fff; font-size: 22px; cursor: pointer; padding: 0 8px; transition: color .2s var(--ij-ease); }
.ij-footer__signup button:hover { color: var(--ij-teal); }
.ij-footer__signup-thanks { position: absolute; left: 0; top: 100%; margin-top: 8px; font-size: 13px; color: var(--ij-teal); }

.ij-footer__base {
	border-top: 1px solid #2A3434;
	padding: 24px var(--ij-gutter);
	max-width: var(--ij-max);
	margin: 0 auto;
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
	font-size: 13px; color: #6B7373;
}

/* ---------- Misc utilities ------------------------------- */
.ij-divider { height: 1px; background: var(--ij-line); margin: clamp(48px, 6vw, 80px) 0; border: 0; }

/* Fade-up entrance is intentionally a no-op visually.
   Content is always visible regardless of JS. */
.ij-fade-up { opacity: 1; transform: none; }

@media print {
	.ij-header, .ij-footer { display: none; }
}
