/* =========================================================
   Riti Punjabi Boutique — theme styles
   Palette matched to the live site: dark green header,
   gold accents, maroon hero tones, rounded product cards.
   ========================================================= */
:root {
	--riti-green: #002925;        /* header / footer dark green */
	--riti-green-soft: #0a3b34;
	--riti-gold: #c6a04c;         /* buttons, icons, logo gold */
	--riti-gold-dark: #aa873c;
	--riti-maroon: #7c1f2c;       /* hero / secondary accent */
	--riti-ink: #232323;
	--riti-body: #6b6b6b;
	--riti-bg-soft: #f7f6f3;
	--riti-line: #ececec;
	--riti-white: #ffffff;
	--riti-radius: 14px;
	--riti-font: 'Poppins', 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--riti-font);
	font-weight: 400;
	color: var(--riti-body);
	background: var(--riti-white);
	line-height: 1.65;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--riti-green); text-decoration: none; }
a:hover { color: var(--riti-gold); }
h1, h2, h3, h4 { font-family: var(--riti-font); color: var(--riti-ink); font-weight: 600; line-height: 1.25; margin: 0 0 .5em; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.riti-container { max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.riti-section { padding: 54px 0; }
.riti-alt { background: var(--riti-bg-soft); }

/* ---------- Buttons ---------- */
.riti-btn {
	display: inline-block;
	background: var(--riti-gold);
	color: var(--riti-white);
	padding: 13px 40px;
	letter-spacing: .22em;
	text-transform: uppercase;
	font-size: 13px;
	font-weight: 500;
	border: 0;
	transition: background .2s ease;
}
.riti-btn:hover { background: var(--riti-gold-dark); color: var(--riti-white); }
.riti-btn-green { background: var(--riti-green); }
.riti-btn-green:hover { background: var(--riti-green-soft); }

/* =========================================================
   Side navigation
   ========================================================= */
:root { --riti-side: 274px; }

.riti-sidebar {
	position: fixed; inset: 0 auto 0 0; width: var(--riti-side); z-index: 80;
	background: var(--riti-green); color: rgba(255,255,255,.8);
	display: flex; flex-direction: column;
	border-right: 1px solid rgba(198,160,76,.22);
}
.riti-shell { margin-left: var(--riti-side); min-height: 100vh; transition: margin-left .28s ease; }

/* Collapsed state (desktop): sidebar slides away, content takes the full width */
.riti-nav-closed .riti-sidebar { transform: translateX(-100%); }
.riti-nav-closed .riti-shell { margin-left: 0; }
.riti-sidebar { transition: transform .28s ease; }

/* Close button, top-right of the sidebar */
.riti-side-close {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	width: 32px; height: 32px; border-radius: 999px; cursor: pointer;
	background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
	color: rgba(255,255,255,.75); display: flex; align-items: center; justify-content: center;
	transition: background .2s, color .2s;
}
.riti-side-close:hover { background: var(--riti-gold); border-color: var(--riti-gold); color: var(--riti-green); }

/* Hamburger that brings it back */
.riti-side-open {
	position: fixed; top: 18px; left: 18px; z-index: 81;
	width: 46px; height: 46px; border-radius: 10px; cursor: pointer;
	background: var(--riti-green); border: 1px solid rgba(198,160,76,.4);
	box-shadow: 0 6px 20px rgba(0,41,37,.22);
	display: none; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	transition: background .2s, transform .2s;
}
.riti-side-open:hover { background: var(--riti-green-soft); transform: translateY(-1px); }
.riti-side-open span { display: block; width: 20px; height: 2.5px; background: var(--riti-gold); border-radius: 2px; }
.riti-nav-closed .riti-side-open { display: flex; }

.riti-sidebar-brand { padding: 26px 24px 18px; text-align: center; }
.riti-sidebar-brand img { max-height: 84px; width: auto; margin: 0 auto; }

/* Search */
.riti-sidebar-search { position: relative; margin: 0 20px 18px; }
.riti-sidebar-search input {
	width: 100%; padding: 10px 40px 10px 14px; border-radius: 8px;
	border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.06);
	color: #fff; font-family: var(--riti-font); font-size: 14px;
}
.riti-sidebar-search input::placeholder { color: rgba(255,255,255,.45); }
.riti-sidebar-search input:focus { outline: 2px solid var(--riti-gold); outline-offset: 1px; }
.riti-sidebar-search button {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
	background: none; border: 0; color: var(--riti-gold); cursor: pointer; padding: 6px;
}

/* Nav */
.riti-sidebar-nav { flex: 1 1 auto; overflow-y: auto; padding: 4px 0 12px; scrollbar-width: thin; }
.riti-sidebar-nav::-webkit-scrollbar { width: 6px; }
.riti-sidebar-nav::-webkit-scrollbar-thumb { background: rgba(198,160,76,.35); border-radius: 99px; }
.riti-menu { list-style: none; margin: 0; padding: 0; }
.riti-menu > li > a,
.riti-cats-toggle {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
	padding: 13px 24px; color: #fff; font-family: var(--riti-font);
	font-size: 13.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
}
.riti-menu > li > a:hover, .riti-cats-toggle:hover { color: var(--riti-gold); background: rgba(255,255,255,.04); }
.riti-caret { color: var(--riti-gold); font-size: 10px; transition: transform .2s ease; }
.riti-cats-toggle[aria-expanded="true"] .riti-caret { transform: rotate(180deg); }

/* Category tree */
.riti-cats-list { list-style: none; margin: 0; padding: 0 0 8px; display: none; }
.riti-cats-list.is-open { display: block; }
.riti-cats-list > li > a,
.riti-sub-toggle {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
	padding: 9px 24px 9px 34px; color: rgba(255,255,255,.82);
	font-family: var(--riti-font); font-size: 13.5px; letter-spacing: .02em;
}
.riti-cats-list > li > a:hover, .riti-sub-toggle:hover { color: var(--riti-gold); }
.riti-sub-toggle .riti-caret { transition: transform .2s ease; }
.riti-sub-toggle[aria-expanded="true"] .riti-caret { transform: rotate(90deg); }
.riti-sub-list { list-style: none; margin: 0; padding: 2px 0 8px; display: none; }
.riti-sub-list.is-open { display: block; }
.riti-sub-list > li > a {
	display: block; padding: 7px 20px 7px 46px; font-size: 13px; color: rgba(255,255,255,.66);
}
.riti-sub-list > li > a:hover { color: var(--riti-gold); }
.riti-sub-all > a { color: var(--riti-gold) !important; font-weight: 600; }
.riti-sub-sub { list-style: none; margin: 0; padding: 0 0 4px; }
.riti-sub-sub > li > a {
	display: block; padding: 6px 18px 6px 58px; font-size: 12.5px; color: rgba(255,255,255,.55);
}
.riti-sub-sub > li > a:hover { color: var(--riti-gold); }

/* Account / cart */
.riti-sidebar-actions { border-top: 1px solid rgba(255,255,255,.1); padding: 12px 0; }
.riti-sidebar-actions a {
	display: flex; align-items: center; gap: 11px; padding: 10px 24px;
	color: rgba(255,255,255,.85); font-size: 13.5px; position: relative;
}
.riti-sidebar-actions a:hover { color: var(--riti-gold); }
.riti-cart-count {
	background: var(--riti-gold); color: var(--riti-green); font-size: 10.5px; font-weight: 700;
	min-width: 18px; height: 18px; line-height: 18px; border-radius: 999px;
	text-align: center; padding: 0 5px; margin-left: auto;
}
.riti-sidebar-foot {
	border-top: 1px solid rgba(255,255,255,.1); padding: 14px 24px 18px;
	font-size: 12.5px; color: rgba(255,255,255,.6); display: grid; gap: 3px;
}
.riti-sidebar-foot a { color: var(--riti-gold); }

/* WordPress admin bar sits above everything and is fixed on small screens —
   offset the sidebar and top bar so the menu button stays tappable. */
.admin-bar .riti-sidebar { top: 32px; }
.admin-bar .riti-side-open { top: 50px; }
@media screen and (max-width: 782px) {
	.admin-bar .riti-sidebar { top: 46px; }
	.admin-bar .riti-topbar { top: 46px; }
}

/* Mobile bar + drawer */
.riti-topbar { display: none; }
.riti-sidebar-brand .custom-logo-link { display: block; }
.riti-sidebar-brand img { max-height: 84px; width: auto; margin: 0 auto; }
.riti-scrim { position: fixed; inset: 0; background: rgba(0,20,18,.55); z-index: 79; border: 0; }
body.riti-drawer-open { overflow: hidden; }
.riti-scrim[hidden] { display: none; }
.riti-nav-toggle { background: none; border: 0; cursor: pointer; padding: 8px; }
.riti-nav-toggle span { display: block; width: 24px; height: 2.5px; background: var(--riti-gold); margin: 5px 0; border-radius: 2px; transition: .2s; }

@media (max-width: 1100px) {
	.riti-topbar {
		display: flex; align-items: center; justify-content: space-between; gap: 10px;
		background: var(--riti-green); padding: 8px 10px; position: sticky; top: 0; z-index: 78;
	}
	/* Cart left, logo centred, menu right — each with a full 46px tap target. */
	.riti-topbar-cart, .riti-nav-toggle {
		flex: 0 0 auto; width: 46px; height: 46px; border-radius: 10px;
		display: flex; align-items: center; justify-content: center;
		position: relative; color: #fff; background: none; border: 0; cursor: pointer; padding: 0;
	}
	.riti-nav-toggle { flex-direction: column; gap: 5px; }
	.riti-nav-toggle span { width: 22px; height: 2.5px; background: var(--riti-gold); border-radius: 2px; margin: 0; }
	.riti-nav-toggle:active { background: rgba(255,255,255,.08); }
	.riti-topbar-cart .riti-cart-count { position: absolute; top: 4px; right: 2px; margin: 0; }
	.riti-topbar-spacer { width: 46px; height: 46px; flex: 0 0 auto; }
	.riti-topbar-brand { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
	.riti-topbar-brand a, .riti-topbar-brand .custom-logo-link { display: block; line-height: 0; }
	.riti-topbar-brand img { max-height: 44px; width: auto; }

	.riti-sidebar {
		transform: translateX(-100%);
		width: min(310px, 86vw); box-shadow: 0 0 40px rgba(0,0,0,.35);
	}
	.riti-sidebar.is-open { transform: translateX(0); }
	.riti-shell, .riti-nav-closed .riti-shell { margin-left: 0; }
	.riti-side-open, .riti-nav-closed .riti-side-open { display: none; }
	.riti-side-close { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
	.riti-sidebar { transition: none; }
}

/* ---------- Hero ---------- */
.riti-hero { position: relative; overflow: hidden; background: var(--riti-green); width: 100%; }
.riti-hero-track { display: flex; transition: transform .55s ease; width: 100%; }
/* flex-basis 100% (not min-width) — otherwise a 1920px image forces the slide wider
   than the viewport and two slides render side by side. */
.riti-hero-slide { flex: 0 0 100%; width: 100%; max-width: 100%; overflow: hidden; }
.riti-hero-slide a { display: block; }
/* Banners vary slightly in height (640px vs 740px); a fixed ratio keeps every
   slide the same height so no background shows through between them. */
.riti-hero-slide img { width: 100%; aspect-ratio: 3 / 1; object-fit: cover; display: block; }
.riti-hero-prev, .riti-hero-next {
	position: absolute; top: 50%; transform: translateY(-50%);
	background: rgba(255, 255, 255, .85); border: 0; cursor: pointer;
	width: 44px; height: 44px; border-radius: 999px; font-size: 16px; color: var(--riti-green);
	transition: background .2s;
}
.riti-hero-prev:hover, .riti-hero-next:hover { background: var(--riti-white); }
.riti-hero-prev { left: 14px; }
.riti-hero-next { right: 14px; }

/* ---------- Section headers (centered, gold VIEW ALL) ---------- */
.riti-section-head { text-align: center; margin-bottom: 36px; }
.riti-section-head h2 { font-size: clamp(28px, 3.6vw, 40px); font-weight: 600; margin: 0 0 18px; }
.riti-viewall {
	display: inline-block;
	background: var(--riti-gold); color: var(--riti-white);
	font-size: 13px; letter-spacing: .26em; text-transform: uppercase; font-weight: 500;
	padding: 12px 44px;
}
.riti-viewall:hover { background: var(--riti-gold-dark); color: var(--riti-white); }

/* ---------- Category circles (auto-sliding carousel) ---------- */
.riti-cats { padding: 46px 0 40px; }
.riti-cat-carousel { position: relative; padding: 0 54px; }
.riti-cat-scroller {
	display: flex; gap: 26px; overflow-x: auto; scroll-behavior: smooth;
	scroll-snap-type: x proximity; padding: 6px 2px 4px;
	-ms-overflow-style: none; scrollbar-width: none;
}
.riti-cat-scroller::-webkit-scrollbar { display: none; }
.riti-cat-scroller:focus-visible { outline: 2px solid var(--riti-gold); outline-offset: 4px; }
.riti-cat-tile { flex: 0 0 auto; width: 160px; text-align: center; scroll-snap-align: start; }
.riti-cat-tile a.riti-cat-img { display: block; width: 160px; height: 160px; margin: 0 auto; }
.riti-cat-tile img {
	width: 160px; height: 160px; border-radius: 999px; object-fit: cover;
	transition: transform .3s ease, box-shadow .3s ease;
}
.riti-cat-tile:hover img { transform: scale(1.05); box-shadow: 0 10px 26px rgba(0, 41, 37, .18); }
.riti-cat-tile h4 { font-size: 15px; font-weight: 400; margin: 14px 0 0; line-height: 1.35; min-height: 2.7em; }
.riti-cat-tile h4 a { color: var(--riti-ink); }
.riti-cat-tile h4 a:hover { color: var(--riti-gold-dark); }

.riti-cat-prev, .riti-cat-next {
	position: absolute; top: 68px; z-index: 3;
	width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--riti-line);
	background: rgba(255,255,255,.96); color: var(--riti-green);
	font-size: 15px; cursor: pointer; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 14px rgba(0,41,37,.12); transition: background .2s, color .2s, opacity .2s;
}
.riti-cat-prev:hover, .riti-cat-next:hover { background: var(--riti-gold); color: #fff; border-color: var(--riti-gold); }
.riti-cat-prev { left: 0; }
.riti-cat-next { right: 0; }
.riti-cat-prev[hidden], .riti-cat-next[hidden] { display: none; }

@media (max-width: 620px) {
	.riti-cat-tile, .riti-cat-tile a.riti-cat-img, .riti-cat-tile img { width: 128px; }
	.riti-cat-tile img { height: 128px; }
	.riti-cat-tile a.riti-cat-img { height: 128px; }
	/* Touch devices swipe the row, so the arrows step aside. */
	.riti-cat-carousel { padding: 0; }
	.riti-cat-prev, .riti-cat-next { display: none !important; }
}

/* ---------- Product grids & cards ---------- */
.riti-grid { display: grid; gap: 34px 22px; }
.riti-grid-4 { grid-template-columns: repeat(4, 1fr); }
.riti-grid-6 { grid-template-columns: repeat(6, 1fr); }

.riti-card { position: relative; text-align: center; }
.riti-card-media { display: block; position: relative; background: var(--riti-bg-soft); border-radius: var(--riti-radius); }
.riti-card-media img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--riti-radius); transition: transform .3s ease; }
.riti-card:hover .riti-card-media img { transform: scale(1.02); }

/* White circular cart button, bottom-right of the image (like the live site) */
.riti-card-cart { position: absolute; right: 10px; bottom: 10px; }
.riti-card-cart .riti-add, .riti-card-cart a.button {
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 999px;
	background: var(--riti-white); color: var(--riti-green);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .16);
	font-size: 0; border: 0; padding: 0;
	transition: background .2s, color .2s;
}
.riti-card-cart .riti-add::before, .riti-card-cart a.button::before {
	content: ""; width: 20px; height: 20px;
	background: currentColor;
	-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><path d="M6 7h12l-1.2 13H7.2L6 7Z"/><path d="M9 7a3 3 0 0 1 6 0"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><path d="M6 7h12l-1.2 13H7.2L6 7Z"/><path d="M9 7a3 3 0 0 1 6 0"/></svg>') center / contain no-repeat;
}
.riti-card-cart .riti-add:hover, .riti-card-cart a.button:hover { background: var(--riti-gold); color: var(--riti-white); }
.riti-card-cart .added_to_cart { display: none; }

.riti-card-cat { display: block; font-size: 13px; font-weight: 600; color: var(--riti-ink); margin-top: 16px; }
.riti-card-title { font-size: 15.5px; font-weight: 400; margin: 4px 0 2px; line-height: 1.45; }
.riti-card-title a { color: var(--riti-ink); }
.riti-card-title a:hover { color: var(--riti-gold); }
.riti-card-price { color: var(--riti-body); font-weight: 500; font-size: 15px; }

/* ---------- About ---------- */
.riti-about { background: var(--riti-bg-soft); }
.riti-about-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.riti-about-copy h2 { font-size: clamp(26px, 3.2vw, 36px); }
.riti-about-copy p { margin: 0 0 26px; }
.riti-about-media img { width: 100%; object-fit: cover; border-radius: var(--riti-radius); }

/* ---------- Banners ---------- */
.riti-banners { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.riti-banners img { width: 100%; object-fit: cover; border-radius: var(--riti-radius); }

/* ---------- Reviews ---------- */

/* ---------- Help CTA ---------- */
.riti-cta { background: var(--riti-green); color: var(--riti-white); padding: 46px 0; }
.riti-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap; }
.riti-cta h2 { color: var(--riti-white); margin: 0 0 4px; font-size: clamp(24px, 3vw, 32px); }
.riti-cta p { margin: 0; opacity: .85; }

/* ---------- Benefits ---------- */
.riti-benefits { border-top: 1px solid var(--riti-line); padding: 34px 0; }
.riti-benefits-inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.riti-benefit { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--riti-gold); }
.riti-benefit img { width: 42px; height: 42px; object-fit: contain; }
.riti-benefit span { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--riti-ink); }

/* ---------- Footer (dark green) ---------- */
.riti-footer { background: var(--riti-green); color: #cfd8d5; }
.riti-footer a { color: #cfd8d5; }
.riti-footer a:hover { color: var(--riti-gold); }
.riti-footer-contact { background: var(--riti-green-soft); padding: 16px 0; }
.riti-footer-contact-inner { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.riti-footer-contact p { margin: 0; font-size: 13.5px; color: #e8ede9; }
.riti-footer-contact a { color: #e8ede9; }
.riti-footer-main { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; padding-top: 46px; padding-bottom: 46px; }
.riti-footer-brand img, .riti-footer-brand svg { max-height: 62px; width: auto; }
.riti-socials { list-style: none; display: flex; gap: 12px; margin: 20px 0 0; padding: 0; }
.riti-socials a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border: 1px solid rgba(207, 216, 213, .35); border-radius: 999px;
	transition: .2s;
}
.riti-socials a:hover { border-color: var(--riti-gold); color: var(--riti-gold); }
.riti-footer-menu { list-style: none; margin: 0; padding: 0; }
.riti-footer-menu li a { display: block; padding: 5px 0; font-size: 14px; }
.riti-footer-bottom { border-top: 1px solid rgba(207, 216, 213, .18); padding: 16px 0; }
.riti-footer-bottom p { margin: 0; font-size: 13px; }

/* ---------- Inner pages / Woo ---------- */
.riti-page, .riti-shop-wrap { padding: 48px 20px 64px; }
.riti-page-head h1 { font-size: clamp(28px, 3.8vw, 42px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--riti-font); font-size: 15px; font-weight: 400; }
.woocommerce ul.products li.product .price { color: var(--riti-body); }
.woocommerce ul.products li.product img { border-radius: var(--riti-radius); }
.woocommerce .button, .woocommerce a.button, .woocommerce button.button.alt {
	background: var(--riti-gold); color: var(--riti-white); border-radius: 4px;
	text-transform: uppercase; letter-spacing: .12em; font-size: 12.5px;
}
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button.alt:hover { background: var(--riti-gold-dark); color: var(--riti-white); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.riti-grid-6 { grid-template-columns: repeat(4, 1fr); }
	}
@media (max-width: 820px) {
	.riti-grid-4 { grid-template-columns: repeat(2, 1fr); }
	.riti-grid-6 { grid-template-columns: repeat(2, 1fr); }
	.riti-about-inner, .riti-banners { grid-template-columns: 1fr; }
	.riti-footer-main { grid-template-columns: 1fr; gap: 26px; }
	.riti-benefits-inner { grid-template-columns: 1fr; }
	.riti-benefit { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}


/* =========================================================
   Inner pages — Our Story & Contact
   Signature: a running-stitch rule in gold thread, echoing the
   hand embroidery and on-the-spot alterations the shop is known for.
   ========================================================= */

/* ---------- Stitched rule ---------- */
.riti-stitch { display: block; line-height: 0; margin: 18px 0 0; }
.riti-stitch svg { display: block; max-width: 100%; }
.riti-stitch-dark { color: var(--riti-gold); }
.riti-stitch-light { color: var(--riti-gold); opacity: .9; }

/* ---------- Eyebrow ---------- */
.riti-eyebrow {
	font-size: 11.5px; letter-spacing: .3em; text-transform: uppercase;
	font-weight: 600; color: var(--riti-gold); margin: 0 0 12px;
}
.riti-eyebrow-dark { color: var(--riti-gold-dark); }

/* ---------- Hero band ---------- */
.riti-hero-band {
	background:
		radial-gradient(120% 140% at 88% 0%, rgba(198,160,76,.16), transparent 60%),
		linear-gradient(160deg, #002925 0%, #013b33 100%);
	color: #fff; padding: 62px 0 66px; position: relative; overflow: hidden;
}
.riti-hero-band::after {
	content: ""; position: absolute; right: -60px; bottom: -90px;
	width: 320px; height: 320px; border-radius: 999px;
	border: 1px solid rgba(198,160,76,.28);
	box-shadow: 0 0 0 34px rgba(198,160,76,.05);
	pointer-events: none;
}
.riti-breadcrumb { font-size: 12.5px; letter-spacing: .04em; margin-bottom: 20px; color: rgba(255,255,255,.62); }
.riti-breadcrumb a { color: rgba(255,255,255,.62); }
.riti-breadcrumb a:hover { color: var(--riti-gold); }
.riti-bc-sep { margin: 0 10px; color: rgba(198,160,76,.6); }
.riti-bc-here { color: #fff; }
.riti-hero-title {
	color: #fff; margin: 0;
	font-size: clamp(38px, 6vw, 68px); font-weight: 600; letter-spacing: -.01em; line-height: 1.05;
}
.riti-hero-band .riti-stitch { margin-top: 24px; }

/* ---------- Story: lead + facts ---------- */
.riti-story-lead { padding: 62px 0 10px; }
.riti-story-lead-inner { display: grid; grid-template-columns: 1.35fr 1fr; gap: 60px; align-items: start; }
.riti-lead {
	margin: 0; font-size: clamp(20px, 2.5vw, 27px); line-height: 1.5;
	color: var(--riti-ink); font-weight: 400;
}
.riti-story-facts { display: grid; gap: 22px; padding-top: 6px; }
.riti-story-facts > div { border-left: 2px solid var(--riti-gold); padding-left: 16px; }
.riti-fact-num { display: block; font-size: 22px; font-weight: 600; color: var(--riti-green); line-height: 1.2; }
.riti-fact-label { display: block; font-size: 13.5px; color: var(--riti-body); margin-top: 2px; }

/* ---------- Press band ---------- */
.riti-story-press { padding: 54px 0 8px; }
.riti-press-band { margin: 0; }
.riti-press-band img { width: 100%; display: block; border-radius: var(--riti-radius); }
.riti-press-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.riti-press-pair figure { margin: 0; position: relative; border-radius: var(--riti-radius); overflow: hidden; }
.riti-press-pair img { width: 100%; display: block; aspect-ratio: 3 / 2; object-fit: cover; }
.riti-press-pair figcaption {
	position: absolute; inset: auto 0 0 0;
	background: linear-gradient(transparent, rgba(0,25,22,.86));
	color: #fff; font-size: 13.5px; line-height: 1.45; padding: 44px 18px 16px;
}

/* ---------- Block headings ---------- */
.riti-block-head { margin-bottom: 34px; }
.riti-block-head h2 { font-size: clamp(28px, 3.6vw, 40px); margin: 0; }
.riti-block-head-light h2 { color: #fff; }

/* ---------- What we carry ---------- */
.riti-story-carry { padding: 66px 0; }
.riti-carry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.riti-carry-col h3 {
	font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
	color: var(--riti-gold-dark); margin: 0 0 16px; padding-bottom: 12px;
	border-bottom: 1px solid var(--riti-line);
}
.riti-carry-col ul { list-style: none; margin: 0; padding: 0; }
.riti-carry-col li {
	font-size: 16px; color: var(--riti-ink); padding: 9px 0 9px 20px; position: relative;
}
.riti-carry-col li::before {
	content: ""; position: absolute; left: 0; top: 18px;
	width: 9px; height: 1.5px; background: var(--riti-gold);
}

/* ---------- Services ---------- */
.riti-story-services { background: var(--riti-bg-soft); padding: 60px 0; }
.riti-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.riti-service {
	background: var(--riti-white); border-radius: var(--riti-radius);
	padding: 32px 30px; border-top: 3px solid var(--riti-gold);
}
.riti-service h3 { font-size: 19px; margin: 0 0 10px; }
.riti-service p { margin: 0; font-size: 15px; }

/* ---------- Editor copy ---------- */
.riti-story-copy { padding: 60px 0 10px; }
.riti-prose { max-width: 720px; margin: 0 auto; }
.riti-prose p { margin: 0 0 18px; font-size: 16.5px; line-height: 1.75; }
.riti-prose h2, .riti-prose h3 { margin: 32px 0 12px; }

/* ---------- Visit ---------- */
.riti-story-visit {
	background: linear-gradient(160deg, #002925 0%, #013b33 100%);
	color: rgba(255,255,255,.78); padding: 68px 0 74px; margin-top: 60px;
}
.riti-visit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.riti-visit-card {
	background: rgba(255,255,255,.05); border: 1px solid rgba(198,160,76,.28);
	border-radius: var(--riti-radius); padding: 30px 28px;
}
.riti-visit-card h3 { color: #fff; font-size: 19px; margin: 0 0 12px; }
.riti-visit-addr { color: #fff; font-size: 15.5px; margin: 0 0 8px; line-height: 1.55; }
.riti-visit-note { font-size: 14.5px; margin: 0 0 18px; color: rgba(255,255,255,.72); }
.riti-visit-cta { background: rgba(198,160,76,.12); }
.riti-textlink {
	display: inline-block; font-size: 13px; letter-spacing: .16em; text-transform: uppercase;
	font-weight: 600; color: var(--riti-gold); border-bottom: 1px solid rgba(198,160,76,.5);
	padding-bottom: 2px; margin-right: 16px;
}
.riti-textlink:hover { color: #fff; border-bottom-color: #fff; }

/* ---------- Contact: reach cards ---------- */
.riti-reach { padding: 56px 0 10px; }
.riti-reach-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.riti-reach-card {
	display: block; border: 1px solid var(--riti-line); border-radius: var(--riti-radius);
	padding: 26px 26px 24px; background: var(--riti-white);
	transition: border-color .2s, transform .2s, box-shadow .2s;
}
.riti-reach-card:hover {
	border-color: var(--riti-gold); transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(0,41,37,.08);
}
.riti-reach-label {
	display: block; font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase;
	color: var(--riti-gold-dark); font-weight: 600; margin-bottom: 10px;
}
.riti-reach-value { display: block; font-size: 22px; color: var(--riti-ink); font-weight: 500; line-height: 1.3; }
.riti-reach-value-sm { font-size: 17px; }
.riti-reach-note { display: block; font-size: 13.5px; color: var(--riti-body); margin-top: 8px; }

/* ---------- Contact: map beside the form ---------- */
.riti-contact-main { padding: 46px 0 8px; }
.riti-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: stretch; }
.riti-map-panel {
	border-radius: var(--riti-radius); overflow: hidden; min-height: 560px;
	background: var(--riti-bg-soft); border: 1px solid var(--riti-line);
}
.riti-map-panel iframe { width: 100%; height: 100%; min-height: 560px; border: 0; display: block; filter: saturate(.92); }
.riti-form-card {
	background: var(--riti-white); border-radius: var(--riti-radius);
	border: 1px solid var(--riti-line);
	box-shadow: 0 18px 44px rgba(0,41,37,.09);
	padding: 38px 38px 34px;
}
.riti-form-card h2 { font-size: clamp(23px, 2.6vw, 29px); margin: 0 0 4px; line-height: 1.25; }
.riti-form-card .riti-stitch { margin-bottom: 22px; }

/* ---------- Form fields ---------- */
.riti-form label { display: block; margin-bottom: 16px; }
.riti-form label span { display: block; font-size: 13px; color: var(--riti-ink); margin-bottom: 6px; font-weight: 500; }
.riti-form input, .riti-form textarea, .riti-form select {
	width: 100%; padding: 12px 14px; border: 1px solid var(--riti-line);
	border-radius: 8px; font-family: var(--riti-font); font-size: 15px;
	background: var(--riti-white); color: var(--riti-ink); -webkit-appearance: none; appearance: none;
}
.riti-form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%236b6b6b' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 12px; padding-right: 38px;
}
.riti-form textarea { resize: vertical; min-height: 130px; }
.riti-form input::placeholder, .riti-form textarea::placeholder { color: #9a9a9a; }
.riti-form input:focus, .riti-form textarea:focus, .riti-form select:focus {
	outline: 2px solid var(--riti-gold); outline-offset: 1px; border-color: transparent;
}
.riti-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.riti-form button { margin-top: 8px; cursor: pointer; width: auto; }
.riti-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.riti-notice { padding: 12px 16px; border-radius: 8px; margin: 0 0 18px; font-size: 14.5px; }
.riti-notice-ok { background: #eaf6ee; color: #1c6b38; border: 1px solid #c3e6d0; }
.riti-notice-err { background: #fdeceb; color: #8f2019; border: 1px solid #f3c7c4; }

/* ---------- Contact: store blocks ---------- */
.riti-contact-stores { padding: 10px 0 70px; }
.riti-stores-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px;
	padding-top: 40px; border-top: 1px solid var(--riti-line);
}
.riti-store-block h3 { font-size: 18px; margin: 0 0 8px; }
.riti-store-block p { font-size: 15px; margin: 0 0 14px; line-height: 1.6; }
.riti-store-block .riti-textlink { color: var(--riti-gold-dark); border-bottom-color: rgba(166,135,60,.45); }
.riti-store-block .riti-textlink:hover { color: var(--riti-green); border-bottom-color: var(--riti-green); }

/* ---------- Default inner pages ---------- */
.riti-page { padding: 56px 20px 70px; }
.riti-page-content { max-width: 760px; margin: 0 auto; }
.riti-page-content p { font-size: 16.5px; line-height: 1.75; }

/* ---------- WooCommerce account pages ---------- */
.woocommerce-account .riti-shop-wrap { max-width: 1080px; margin: 0 auto; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block; padding: 11px 14px; border-bottom: 1px solid var(--riti-line);
	color: var(--riti-ink); font-size: 14.5px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--riti-gold-dark); font-weight: 600; }
.woocommerce form.login, .woocommerce form.register {
	border: 1px solid var(--riti-line); border-radius: var(--riti-radius); padding: 30px;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
	padding: 11px 13px; border: 1px solid var(--riti-line); border-radius: 8px; font-family: var(--riti-font);
}
.riti-account-intro { text-align: center; max-width: 680px; margin: 0 auto 34px; }

/* ---------- Reviews carousel ---------- */
.riti-review-carousel { overflow: hidden; position: relative; }
.riti-review-track { display: flex; transition: transform .5s ease; }
.riti-review {
	flex: 0 0 100%; width: 100%; max-width: 100%; margin: 0;
	display: grid; grid-template-columns: 300px 1fr; align-items: stretch;
	border: 1px solid var(--riti-line); border-radius: var(--riti-radius); overflow: hidden;
	background: var(--riti-white); text-align: left;
}
.riti-review-photo { height: 100%; }
.riti-review-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; min-height: 340px; display: block; border-radius: 0; }
.riti-review-body { padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; }
.riti-review blockquote { margin: 0 0 18px; font-size: 16.5px; line-height: 1.7; color: var(--riti-ink); }
.riti-review figcaption { font-size: 16px; color: var(--riti-ink); font-weight: 500; }
.riti-review-dots { display: flex; gap: 9px; justify-content: center; margin-top: 22px; }
.riti-dot { width: 9px; height: 9px; border-radius: 999px; border: 0; padding: 0; cursor: pointer; background: #cfcfcf; }
.riti-dot.is-active { background: var(--riti-green); }

/* ---------- Homepage about band ---------- */
.riti-about-inner { grid-template-columns: 1.25fr 1fr; gap: 0; align-items: center; }
.riti-about-media { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.riti-about-media img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--riti-radius); }
.riti-about-media img:only-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.riti-about-copy {
	background: var(--riti-white); padding: 44px;
	margin-left: -60px; border-radius: var(--riti-radius);
	box-shadow: 0 18px 40px rgba(0,41,37,.10); position: relative; z-index: 2;
}
.riti-btn-dark { background: var(--riti-ink); }
.riti-btn-dark:hover { background: var(--riti-green); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
	.riti-story-lead-inner { grid-template-columns: 1fr; gap: 34px; }
	.riti-story-facts { grid-template-columns: repeat(3, 1fr); gap: 16px; }
	.riti-carry-grid, .riti-service-grid, .riti-visit-grid,
	.riti-reach-grid, .riti-stores-grid { grid-template-columns: 1fr; }
	.riti-contact-grid { grid-template-columns: 1fr; }
	.riti-map-panel, .riti-map-panel iframe { min-height: 340px; }
	.riti-about-inner { grid-template-columns: 1fr; }
	.riti-about-copy { margin-left: 0; margin-top: -30px; }
	.riti-review { grid-template-columns: 1fr; }
	.riti-review-photo img { min-height: 240px; max-height: 320px; }
	.riti-review-body { padding: 26px 22px; }
}
@media (max-width: 620px) {
	.riti-story-facts { grid-template-columns: 1fr; }
	.riti-press-pair { grid-template-columns: 1fr; }
	.riti-form-row { grid-template-columns: 1fr; }
	.riti-form-card { padding: 28px 22px 26px; }
	.riti-hero-band { padding: 46px 0 50px; }
}

/* ---------- Size selector on product pages ---------- */
.riti-sizes { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 4px; }
.riti-size {
	background: var(--riti-white); border: 1px solid var(--riti-line); color: var(--riti-ink);
	border-radius: 8px; padding: 10px 16px; font-family: var(--riti-font);
	font-size: 14px; cursor: pointer; transition: border-color .15s, background .15s, color .15s;
}
.riti-size:hover { border-color: var(--riti-gold); }
.riti-size.is-active { background: var(--riti-green); border-color: var(--riti-green); color: #fff; }
.riti-size:focus-visible { outline: 2px solid var(--riti-gold); outline-offset: 2px; }
.riti-size-select { display: none; }
.woocommerce div.product form.cart .variations label { font-weight: 500; }
.woocommerce div.product form.cart .variations td { padding: 6px 0; }
.riti-ship-note {
	display: flex; align-items: center; gap: 8px;
	font-size: 14px; color: var(--riti-body); margin: 16px 0 0;
	padding-top: 14px; border-top: 1px solid var(--riti-line);
}
.riti-ship-note svg { color: var(--riti-gold); flex: 0 0 auto; }

/* ---------- Size guide dialog ---------- */
.riti-guide-open {
	background: none; border: 0; padding: 0; cursor: pointer;
	font-family: var(--riti-font); font-size: 12px; font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase; color: var(--riti-gold-dark);
	border-bottom: 1px solid rgba(166,135,60,.5); margin: 0 0 10px;
}
.riti-guide-open:hover { color: var(--riti-green); border-bottom-color: var(--riti-green); }

.riti-guide { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.riti-guide[hidden] { display: none; }
.riti-guide-scrim { position: absolute; inset: 0; background: rgba(0,20,18,.55); }
.riti-guide-panel {
	position: relative; background: var(--riti-white); border-radius: var(--riti-radius);
	width: min(860px, 100%); max-height: 86vh; display: flex; flex-direction: column;
	box-shadow: 0 30px 70px rgba(0,41,37,.3); overflow: hidden;
}
.riti-guide-head {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 6px 10px 0 18px; border-bottom: 1px solid var(--riti-line);
}
.riti-guide-tabs { display: flex; gap: 4px; }
.riti-guide-tab {
	background: none; border: 0; cursor: pointer; font-family: var(--riti-font);
	font-size: 14px; color: var(--riti-body); padding: 14px 14px 12px;
	border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.riti-guide-tab:hover { color: var(--riti-ink); }
.riti-guide-tab.is-active { color: var(--riti-ink); font-weight: 600; border-bottom-color: var(--riti-gold); }
.riti-guide-close {
	background: none; border: 0; cursor: pointer; color: var(--riti-body);
	width: 38px; height: 38px; border-radius: 999px; display: flex; align-items: center; justify-content: center;
}
.riti-guide-close:hover { background: var(--riti-bg-soft); color: var(--riti-ink); }

.riti-guide-body { padding: 22px 26px 28px; overflow-y: auto; }
.riti-guide-body h3 {
	font-size: 15px; letter-spacing: .16em; text-transform: uppercase; color: var(--riti-ink);
	margin: 0 0 14px; display: flex; align-items: baseline; gap: 10px;
}
.riti-guide-body h3 + .riti-guide-scroll { margin-bottom: 30px; }
.riti-guide-body h3 span { font-size: 11.5px; letter-spacing: .1em; color: var(--riti-body); text-transform: none; }
.riti-guide-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.riti-guide-table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 14px; }
.riti-guide-table th, .riti-guide-table td { border: 1px solid var(--riti-line); padding: 10px 12px; text-align: center; }
.riti-guide-table thead th { background: var(--riti-green); color: #fff; font-weight: 600; font-size: 13px; }
.riti-guide-table thead th:first-child { text-align: left; }
.riti-guide-table tbody th { text-align: left; font-weight: 400; color: var(--riti-ink); background: var(--riti-bg-soft); white-space: nowrap; }
.riti-guide-table tbody tr:hover td { background: #fbf9f5; }

.riti-measure-list { list-style: none; counter-reset: m; margin: 0; padding: 0; }
.riti-measure-list li { counter-increment: m; display: grid; grid-template-columns: 34px 150px 1fr; gap: 12px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--riti-line); }
.riti-measure-list li::before {
	content: counter(m); width: 26px; height: 26px; border-radius: 999px;
	background: var(--riti-green); color: var(--riti-gold); font-size: 12px; font-weight: 600;
	display: flex; align-items: center; justify-content: center;
}
.riti-measure-list strong { font-size: 15px; color: var(--riti-ink); font-weight: 500; }
.riti-measure-list span { font-size: 14.5px; color: var(--riti-body); }
.riti-guide-note {
	margin: 22px 0 0; padding: 14px 16px; background: var(--riti-bg-soft);
	border-left: 3px solid var(--riti-gold); border-radius: 0 8px 8px 0;
	font-size: 14px; color: var(--riti-body);
}
body.riti-guide-lock { overflow: hidden; }

@media (max-width: 620px) {
	.riti-guide { padding: 0; }
	.riti-guide-panel { max-height: 100vh; height: 100%; border-radius: 0; width: 100%; }
	.riti-guide-body { padding: 18px 16px 24px; }
	.riti-measure-list li { grid-template-columns: 30px 1fr; }
	.riti-measure-list strong { grid-column: 2; }
	.riti-measure-list span { grid-column: 2; }
}

/* Guide link on simple (not yet sized) clothing products */
.riti-guide-open-simple { display: block; margin: 0 0 14px; }
.woocommerce div.product form.cart .riti-guide-open-simple { float: none; clear: both; }
