/*
 * Mewa Bari (organicfood-2): portfolio styles.
 * Colours, sizes, corners and buttons come from Site Kit (tokens.css). This file adds the fonts,
 * the small gold arch ornament and the homepage layout. Unlayered: wins over shared styles.
 */

/* ---------- fonts (self-hosted Latin; Bangla uses Site Kit's Hind Siliguri) ---------- */
@font-face {
	font-family: "Marcellus";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("fonts/marcellus-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Jost";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("fonts/jost-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	/* A small arch between two lines (the doorway of the logo), used as a mask so it takes any colour. */
	--leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='14'%3E%3Cpath d='M0 12h15M29 12h15' stroke='%23000' stroke-width='1.2'/%3E%3Cpath d='M17.5 13V7a4.5 4.5 0 0 1 9 0v6' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cellipse cx='22' cy='9.6' rx='1.6' ry='2.4'/%3E%3C/svg%3E");
}

.section-head__text::after {
	background-color: var(--accent);
	-webkit-mask: var(--leaf) no-repeat center / 44px 14px;
	mask: var(--leaf) no-repeat center / 44px 14px;
}

/* Bangla reads better a little larger and looser than Latin. */
:lang(bn) body { line-height: 1.75; }
:lang(bn) :is(h1, h2, h3) { letter-spacing: 0; line-height: 1.3; }

.eyebrow {
	color: var(--accent);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
:lang(bn) .eyebrow { letter-spacing: 0.02em; font-size: var(--text-s); }

.btn--light { background: #fff; border-color: #fff; color: var(--primary); }
.btn--light:hover { background: transparent; color: #fff; }

/* ---------- header ---------- */
.site-header { border-block-end: 1px solid var(--border); }
.site-header__logo-img { block-size: 2.6rem; inline-size: auto; }
@media (min-width: 1100px) { .site-header__logo-img { block-size: 3rem; } }
.aura-nav--bar .aura-nav__list > li > a { font-weight: 500; }

/* ---------- shared section pieces ---------- */
.home-section { padding-block: var(--section-m); }
.home-section__inner { align-items: stretch; gap: var(--content-gap); }
.section-head { display: grid; justify-items: center; gap: var(--gap-xs); text-align: center; }
.section-head__text { display: grid; justify-items: center; gap: 0.35rem; }
.section-head__text > * { margin: 0; }
.section-head__title { font-size: var(--h2); }
.section-head__text::after { content: ""; display: block; inline-size: 44px; block-size: 14px; margin-block-start: 0.6rem; }
.section-head__more { color: var(--primary); font-size: var(--text-s); font-weight: 600; text-decoration: underline; text-underline-offset: 0.35em; }

/* ---------- 1. hero ---------- */
.hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); padding: 0; overflow: hidden; background: var(--bg-light); }
.hero__image,
.hero__image img { display: block; inline-size: 100%; block-size: 52vh; min-block-size: 18rem; object-fit: cover; object-position: 70% center; }
.hero__inner { padding-block: var(--section-s); padding-inline: var(--gutter); }
.hero__content { display: grid; justify-items: start; gap: var(--gap-s); inline-size: 100%; max-inline-size: min(34rem, 100%); }
.hero__content > * { margin: 0; }
.hero__title { font-size: clamp(2.3rem, 1.5rem + 3.2vw, 4rem); font-weight: 400; line-height: 1.1; letter-spacing: 0; }
:lang(bn) .hero__title { font-size: clamp(2rem, 1.4rem + 2.8vw, 3.6rem); line-height: 1.25; letter-spacing: 0; }
.hero__text { max-inline-size: min(31rem, 100%); font-size: var(--text-l); }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--gap-xs); margin-block-start: var(--gap-xs); }
@media (min-width: 900px) {
	.hero { min-block-size: min(84vh, 50rem); }
	.hero__image,
	.hero__image img { position: absolute; inset: 0; block-size: 100%; min-block-size: 0; object-position: center; }
	.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgb(251 246 236 / 0.96) 0%, rgb(251 246 236 / 0.75) 36%, rgb(251 246 236 / 0) 62%); }
	.hero__inner { position: relative; z-index: 2; justify-content: center; padding-block: var(--section-l); }
}

/* ---------- 2. strip ---------- */
.home-strip { padding-block: var(--gap-m); border-block-end: 1px solid var(--border); background: var(--bg); }
.strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-s); margin: 0; padding: 0; list-style: none; }
@media (min-width: 900px) { .strip { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.strip__item { display: flex; align-items: center; gap: 0.6rem; margin: 0; color: var(--heading-color); font-size: var(--text-s); font-weight: 500; }
.strip__icon { flex: none; inline-size: auto; color: var(--primary); }

/* ---------- 3. categories ---------- */
.cat-grid,
.journal-grid { display: grid; gap: var(--grid-gap); margin: 0; padding: 0; list-style: none; }
.cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cat-grid > li,
.journal-grid > li { margin: 0; }
.cat-tile { position: relative; display: block; overflow: hidden; border-radius: var(--radius); background: var(--bg-light); color: #fff; text-decoration: none; }
.cat-tile__image,
.cat-tile__image img { display: block; inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.6s var(--easing); }
.cat-tile:hover .cat-tile__image { transform: scale(1.04); }
.cat-tile__label { position: absolute; inset: auto 0 0; display: grid; gap: 0.1rem; padding: var(--gap-m) var(--gap-s) var(--gap-s); background: linear-gradient(0deg, rgb(42 26 18 / 0.85), rgb(42 26 18 / 0)); }
.cat-tile__name { margin: 0; color: #fff; font-size: var(--h4); line-height: 1.25; }
.cat-tile__count { color: rgb(255 255 255 / 0.8); font-size: var(--text-xs); }

/* ---------- product rows ---------- */
.home-products { --shop-columns: 4; }
.home-best { background: var(--bg-light); }

/* ---------- 5. combo banner ---------- */
.promo { display: grid; gap: var(--gap-l); align-items: center; padding: var(--gap-s); border-radius: calc(var(--radius) * 1.5); background: var(--bg-dark); color: rgb(255 255 255 / 0.85); }
@media (min-width: 900px) { .promo { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); padding: var(--gap-m); } }
.promo__image,
.promo__image img { display: block; inline-size: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius); background: rgb(255 255 255 / 0.06); }
.promo__text { display: grid; justify-items: start; gap: var(--gap-s); padding: var(--gap-xs) var(--gap-xs) var(--gap-s); }
.promo__text > * { margin: 0; }
.promo__title { color: #fff; font-size: var(--h2); }
.promo .eyebrow { color: #e2b862; }
.promo { border: 1px solid rgb(226 184 98 / 0.35); }

/* ---------- 6. know your dates ---------- */
.know-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
@media (min-width: 900px) { .know-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.know-tile { display: grid; gap: var(--gap-xs); color: inherit; text-decoration: none; }
.know-tile__image,
.know-tile__image img { display: block; inline-size: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 999px 999px var(--radius) var(--radius); background: var(--bg-light); transition: transform 0.6s var(--easing); }
.know-tile:hover .know-tile__image { transform: translateY(-4px); }
.know-tile__label { display: grid; gap: 0.1rem; text-align: center; }
.know-tile__name { margin: 0; font-size: var(--h4); }
.know-tile__text { color: var(--text-muted); font-size: var(--text-s); }

/* ---------- (unused here) from the source ---------- */
.source-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
@media (min-width: 900px) { .source-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.source-tile { position: relative; display: block; overflow: hidden; border-radius: var(--radius); color: #fff; text-decoration: none; }
.source-tile__image,
.source-tile__image img { display: block; inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--bg-light); transition: transform 0.6s var(--easing); }
.source-tile:hover .source-tile__image { transform: scale(1.04); }
.source-tile__name { position: absolute; inset: auto 0 0; padding: var(--gap-m) var(--gap-s) var(--gap-s); background: linear-gradient(0deg, rgb(42 26 18 / 0.85), rgb(42 26 18 / 0)); font-size: var(--h4); font-weight: 600; }

/* ---------- 7. steps ---------- */
.home-steps { background: var(--bg-light); }
.step-grid { display: grid; gap: var(--grid-gap); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .step-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .step-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Photo on top, then the number badge beside the title (in the flow, so it can never cover the text), then the text. */
.step { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "img img" "num title" "text text"; align-content: start; align-items: center; column-gap: 0.7rem; row-gap: 0.6rem; margin: 0; }
.step > * { margin: 0; }
.step__image { grid-area: img; }
.step__image,
.step__image img { display: block; inline-size: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); background: var(--bg); }
.step__number { grid-area: num; display: grid; place-items: center; inline-size: 2.2rem; block-size: 2.2rem; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 600; }
.step__title { grid-area: title; font-size: var(--h4); line-height: 1.25; }
.step__text { grid-area: text; font-size: var(--text-s); }

/* ---------- 9. story ---------- */
.story { display: grid; gap: var(--gap-l); align-items: center; }
@media (min-width: 900px) { .story { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.story__image,
.story__image img { display: block; inline-size: 100%; aspect-ratio: 4 / 5; max-block-size: 34rem; object-fit: cover; border-radius: var(--radius); }
.story__text { display: grid; justify-items: start; gap: var(--gap-s); max-inline-size: min(34rem, 100%); }
.story__text > * { margin: 0; }
.story__title { font-size: var(--h2); }

/* ---------- 10. FAQ ---------- */
.faq { display: grid; gap: var(--gap-xs); inline-size: 100%; max-inline-size: 48rem; margin-inline: auto; }
.faq__item { border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.faq__q { position: relative; padding: var(--gap-s) 3rem var(--gap-s) var(--gap-s); color: var(--heading-color); font-weight: 600; cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: "+"; position: absolute; inset-inline-end: var(--gap-s); inset-block-start: 50%; transform: translateY(-50%); color: var(--primary); font-size: 1.4rem; font-weight: 400; }
.faq__item[open] .faq__q::after { content: "−"; }
.faq__a { margin: 0; padding: 0 var(--gap-s) var(--gap-s); }

/* ---------- 11. band ---------- */
.home-band { background: var(--primary); color: rgb(255 255 255 / 0.9); }
.home-band .home-section__inner { align-items: center; text-align: center; }
.band__title { margin: 0; color: #fff; font-size: var(--h2); }
.band__text { max-inline-size: 38rem; margin: 0; }
.band__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap-xs); }

/* ---------- 12. journal ---------- */
@media (min-width: 768px) { .journal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.journal-grid__item { display: grid; align-content: start; gap: var(--gap-xs); }
.journal-card__image,
.journal-card__image img { display: block; inline-size: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius); background: var(--bg-light); }
.journal-card__title { margin: 0; font-size: var(--h4); }
.journal-card__title a { color: var(--heading-color); text-decoration: none; }
.journal-card__excerpt { color: var(--text-muted); font-size: var(--text-s); }

/* ---------- product cards: origin line ---------- */
.card-specs { color: var(--accent); font-weight: 500; }
.demo-note { color: var(--text-muted); font-size: var(--text-s); }
