:root {
	--rt-black: #000;
	--rt-dark: #1d1d1b;
	--rt-cream: #f6f3ee;
	--rt-grey: #6f6f6f;
	--rt-line: #e6e2da;
	--rt-serif: "Cormorant Garamond", "Times New Roman", serif;
	--rt-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html { font-size: 62.5%; }

body {
	margin: 0;
	font-family: var(--rt-sans);
	font-size: 1.4rem;
	line-height: 1.6;
	color: var(--rt-dark);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; }

/* ---------- top bar ---------- */
.rt-topbar {
	background: #000;
	color: #fff;
	font-size: 1.2rem;
	letter-spacing: .02em;
}
.rt-topbar__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 3.2rem;
	height: 4.6rem;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}
.rt-topbar__promo { white-space: nowrap; }
.rt-topbar__links { display: flex; justify-content: flex-end; gap: 1.6rem; }
.rt-topbar__links a { opacity: .9; }
.rt-topbar__links a:hover { opacity: 1; text-decoration: underline; }

.rt-logo {
	font-family: var(--rt-serif);
	font-size: 2.4rem;
	letter-spacing: .38em;
	text-transform: uppercase;
	font-weight: 500;
	text-align: center;
	text-indent: .38em;
}
.rt-logo__dots { letter-spacing: .12em; }

/* ---------- header / nav ---------- */
.rt-header {
	background: var(--rt-dark);
	color: #fff;
	position: sticky;
	top: 0;
	z-index: 90;
}
.rt-header__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 3.2rem;
	height: 5.8rem;
	display: flex;
	align-items: center;
	gap: 2rem;
}
.rt-nav { flex: 1; }
.rt-nav__list { display: flex; gap: 2.6rem; list-style: none; margin: 0; padding: 0; }
.rt-nav__list > li > a {
	font-size: 1.35rem;
	letter-spacing: .01em;
	padding: .8rem 0;
	display: inline-block;
	border-bottom: 1px solid transparent;
}
.rt-nav__list > li > a:hover { border-bottom-color: #fff; }
.rt-nav__list .sub-menu { display: none; }

.rt-tools { display: flex; align-items: center; gap: 1.4rem; }
.rt-tool {
	background: none;
	border: 0;
	color: #fff;
	padding: .4rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
}
.rt-tool--cart { position: relative; }
.rt-cart-count { font-size: 1.1rem; }

.rt-burger { display: none; background: none; border: 0; padding: .6rem; cursor: pointer; }
.rt-burger span { display: block; width: 2rem; height: 1px; background: #fff; margin: .45rem 0; }

.rt-search {
	position: absolute;
	left: 0; right: 0;
	background: #fff;
	border-bottom: 1px solid var(--rt-line);
	padding: 1.6rem 3.2rem;
	z-index: 95;
}
.rt-search form { display: flex; gap: 1rem; max-width: 900px; margin: 0 auto; }
.rt-search input[type="search"] {
	flex: 1; border: 0; border-bottom: 1px solid var(--rt-dark);
	padding: 1rem .4rem; font-size: 1.5rem; outline: none;
}
.rt-search button {
	background: var(--rt-dark); color: #fff; border: 0;
	padding: 0 2.4rem; font-size: 1.2rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}

/* ---------- hero ---------- */
.rt-hero { position: relative; min-height: 58rem; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; overflow: hidden; }
.rt-hero__media { position: absolute; inset: 0; background: radial-gradient(circle at 50% 35%, #6d1f1a 0%, #2a0d0b 45%, #120605 100%); background-size: cover; background-position: center; }
.rt-hero__media::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.rt-hero__content { position: relative; z-index: 2; padding: 4rem 2rem; }
.rt-hero__eyebrow { font-size: 1.1rem; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 1.6rem; }
.rt-hero__title { font-family: var(--rt-serif); font-weight: 400; font-size: 5.6rem; line-height: 1.05; margin: 0 0 3rem; }
.rt-btn {
	display: inline-block; background: #fff; color: var(--rt-dark);
	font-size: 1.2rem; letter-spacing: .12em; text-transform: uppercase;
	padding: 1.5rem 3.6rem; border: 1px solid #fff; transition: .2s;
}
.rt-btn:hover { background: transparent; color: #fff; }
.rt-hero__dots { position: absolute; bottom: 2.4rem; left: 50%; transform: translateX(-50%); display: flex; gap: .9rem; z-index: 2; }
.rt-hero__dots span { width: .7rem; height: .7rem; border-radius: 50%; background: rgba(255,255,255,.45); }
.rt-hero__dots .is-active { background: #fff; }

/* ---------- sections ---------- */
.rt-section { padding: 7rem 0; }
.rt-section--cream { background: var(--rt-cream); }
.rt-section__inner { max-width: 1440px; margin: 0 auto; padding: 0 3.2rem; }
.rt-eyebrow { font-size: 1.1rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rt-grey); margin: 0 0 1.2rem; }
.rt-h2 { font-family: var(--rt-serif); font-weight: 400; font-size: 4rem; margin: 0 0 4rem; }

/* ---------- product grid ---------- */
.rt-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.4rem; }
.rt-card { display: block; color: inherit; }
.rt-card__media { display: flex; align-items: center; justify-content: center; background: var(--rt-cream); aspect-ratio: 3 / 4; padding: 2rem; }
.rt-card__media img { max-height: 100%; object-fit: contain; transition: transform .35s ease; }
.rt-card:hover .rt-card__media img { transform: scale(1.04); }
.rt-card__name { display: block; margin-top: 1.4rem; font-size: 1.3rem; }
.rt-card__price { display: block; margin-top: .3rem; font-size: 1.3rem; font-weight: 500; }

/* ---------- tiles ---------- */
.rt-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.4rem; }
.rt-tile { position: relative; display: block; overflow: hidden; }
.rt-tile img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .4s; }
.rt-tile:hover img { transform: scale(1.04); }
.rt-tile__name { position: absolute; left: 1.6rem; bottom: 1.4rem; color: #fff; font-size: 1.5rem; letter-spacing: .02em; text-shadow: 0 1px 10px rgba(0,0,0,.35); }

/* ---------- category page ---------- */
.rt-crumbs {
	max-width: 1440px; margin: 0 auto; padding: 1.6rem 3.2rem;
	font-size: 1.15rem; color: var(--rt-grey);
	display: flex; align-items: center; gap: .8rem;
}
.rt-cathero { background: var(--rt-dark); color: #fff; }
.rt-cathero__inner { max-width: 1440px; margin: 0 auto; padding: 6rem 3.2rem 5rem; }
.rt-cathero__title { font-family: var(--rt-serif); font-weight: 400; font-size: 5rem; margin: 0 0 2.4rem; }
.rt-cathero__sub { display: flex; flex-wrap: wrap; gap: 1.8rem; }
.rt-cathero__sub a { font-size: 1.35rem; border-bottom: 1px solid rgba(255,255,255,.4); padding-bottom: .2rem; }
.rt-cathero__sub a:hover { border-bottom-color: #fff; }

.rt-toolbar {
	max-width: 1440px; margin: 0 auto; padding: 3rem 3.2rem 1rem;
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem;
}
.rt-filter {
	justify-self: start; background: none; border: 1px solid var(--rt-dark);
	padding: 1.1rem 2.4rem; font-size: 1.2rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}
.rt-count { font-size: 1.3rem; color: var(--rt-grey); }
.rt-sort { justify-self: end; display: flex; align-items: center; gap: 1rem; font-size: 1.3rem; }
.rt-sort select { border: 1px solid var(--rt-line); padding: 1rem 1.4rem; font-size: 1.25rem; background: #fff; }

.rt-plp { max-width: 1440px; margin: 0 auto; padding: 2rem 3.2rem 7rem; }
.rt-plp .rt-grid { gap: 2.4rem 2.4rem; }
.rt-pagination { display: flex; justify-content: center; gap: .8rem; margin-top: 4rem; }
.rt-pagination a, .rt-pagination span {
	padding: .8rem 1.4rem; border: 1px solid var(--rt-line); font-size: 1.2rem;
}
.rt-pagination .current { background: var(--rt-dark); color: #fff; border-color: var(--rt-dark); }

/* ---------- pdp ---------- */
.rt-pdp { max-width: 1440px; margin: 0 auto; padding: 2rem 3.2rem 6rem; display: grid; grid-template-columns: 1.15fr .85fr; gap: 6rem; }
.rt-pdp__gallery { display: grid; grid-template-columns: 9rem 1fr; gap: 1.6rem; }
.rt-pdp__thumbs { display: flex; flex-direction: column; gap: 1rem; }
.rt-thumb { background: var(--rt-cream); border: 1px solid transparent; padding: .6rem; cursor: pointer; }
.rt-thumb.is-active { border-color: var(--rt-dark); }
.rt-pdp__stage { background: var(--rt-cream); display: flex; align-items: center; justify-content: center; padding: 3rem; }
.rt-pdp__stage img { max-height: 62rem; object-fit: contain; }
.rt-pdp__title { font-family: var(--rt-serif); font-weight: 400; font-size: 3.8rem; line-height: 1.1; margin: 0 0 1.4rem; }
.rt-pdp__price { font-size: 2rem; margin: 0 0 2rem; }
.rt-pdp__short { font-size: 1.4rem; color: #3a3a38; margin-bottom: 2.6rem; }
.rt-pdp__buy .quantity { display: inline-flex; border: 1px solid var(--rt-line); margin-right: 1rem; }
.rt-pdp__buy .quantity input { width: 5rem; border: 0; text-align: center; padding: 1.2rem 0; }
.rt-pdp__buy .single_add_to_cart_button {
	background: var(--rt-dark); color: #fff; border: 0;
	padding: 1.45rem 4.4rem; font-size: 1.2rem; letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
}
.rt-pdp__buy .single_add_to_cart_button:hover { background: #000; }
.rt-accordion { margin-top: 3.6rem; border-top: 1px solid var(--rt-line); }
.rt-accordion details { border-bottom: 1px solid var(--rt-line); }
.rt-accordion summary { padding: 1.6rem 0; cursor: pointer; font-size: 1.25rem; letter-spacing: .08em; text-transform: uppercase; list-style: none; }
.rt-accordion summary::-webkit-details-marker { display: none; }
.rt-accordion details > div { padding: 0 0 1.8rem; font-size: 1.35rem; color: #3a3a38; }

/* ---------- footer ---------- */
.rt-footer { background: var(--rt-dark); color: #fff; padding: 6rem 0 2rem; }
.rt-footer__inner { max-width: 1440px; margin: 0 auto; padding: 0 3.2rem; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 4rem; }
.rt-footer__brand p { font-size: 1.3rem; color: rgba(255,255,255,.65); max-width: 32rem; margin-top: 1.6rem; }
.rt-logo--footer { font-size: 2rem; }
.rt-footer__col h3 { font-size: 1.15rem; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 1.4rem; font-weight: 500; }
.rt-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; font-size: 1.25rem; color: rgba(255,255,255,.75); }
.rt-footer__col a:hover { color: #fff; }
.rt-footer__col .menu { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; font-size: 1.25rem; color: rgba(255,255,255,.75); }
.rt-footer__bottom {
	max-width: 1440px; margin: 4rem auto 0; padding: 2rem 3.2rem 0;
	border-top: 1px solid rgba(255,255,255,.12);
	display: flex; justify-content: space-between; font-size: 1.1rem; color: rgba(255,255,255,.55);
}

/* ---------- woocommerce basics ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.wc-block-components-button, .checkout-button {
	background: var(--rt-dark) !important; color: #fff !important; border-radius: 0 !important;
	text-transform: uppercase; letter-spacing: .1em; font-size: 1.15rem; padding: 1.3rem 2.6rem;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: 0; }
.rt-main { min-height: 40vh; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.rt-grid, .rt-tiles { grid-template-columns: repeat(3, 1fr); }
	.rt-pdp { grid-template-columns: 1fr; gap: 3rem; }
	.rt-topbar__links { display: none; }
}

@media (max-width: 860px) {
	html { font-size: 60%; }
	.rt-topbar__inner { grid-template-columns: 1fr auto; height: 4rem; padding: 0 1.8rem; }
	.rt-topbar__promo { font-size: 1.05rem; }
	.rt-logo { font-size: 2rem; position: absolute; left: 50%; transform: translateX(-50%); }
	.rt-topbar { position: relative; }
	.rt-header__inner { padding: 0 1.8rem; height: 5.2rem; }
	.rt-burger { display: block; }
	.rt-nav {
		position: fixed; inset: 0 0 0 auto; width: 84%;
		background: #fff; color: var(--rt-dark);
		transform: translateX(100%); transition: transform .25s ease;
		padding: 6rem 2.4rem 2rem; overflow-y: auto; z-index: 120;
	}
	body.rt-nav-open .rt-nav { transform: translateX(0); }
	.rt-nav__list { flex-direction: column; gap: 0; }
	.rt-nav__list > li { border-bottom: 1px solid var(--rt-line); }
	.rt-nav__list > li > a { padding: 1.4rem 0; font-size: 1.5rem; }
	.rt-grid, .rt-tiles { grid-template-columns: repeat(2, 1fr); }
	.rt-section { padding: 5rem 0; }
	.rt-h2 { font-size: 3rem; margin-bottom: 2.6rem; }
	.rt-hero { min-height: 44rem; }
	.rt-hero__title { font-size: 3.6rem; }
	.rt-pdp__gallery { grid-template-columns: 1fr; }
	.rt-pdp__thumbs { flex-direction: row; order: 2; }
	.rt-pdp { padding: 1rem 1.8rem 4rem; }
	.rt-toolbar { grid-template-columns: auto 1fr; padding: 2rem 1.8rem .6rem; }
	.rt-count { justify-self: end; }
	.rt-sort { grid-column: 1 / -1; justify-self: stretch; }
	.rt-plp { padding: 1rem 1.8rem 5rem; }
	.rt-footer__inner { grid-template-columns: 1fr 1fr; gap: 3rem; padding: 0 1.8rem; }
	.rt-footer__bottom { padding: 2rem 1.8rem 0; flex-direction: column; gap: .6rem; }
	.rt-section__inner { padding: 0 1.8rem; }
	.rt-crumbs { padding: 1.2rem 1.8rem; }
	.rt-cathero__inner { padding: 4rem 1.8rem 3.4rem; }
	.rt-cathero__title { font-size: 3.6rem; }
}

/* ---------- hero carousel ---------- */
.rt-hero { position: relative; height: 56rem; overflow: hidden; background: #120605; display: block; }
.rt-hero__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .7s ease; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; }
.rt-hero__slide.is-active { opacity: 1; visibility: visible; z-index: 2; }
.rt-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rt-hero__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.34) 100%); }
.rt-hero__content { position: relative; z-index: 2; padding: 4rem 2rem; max-width: 92rem; }
.rt-hero__dots { position: absolute; bottom: 2.4rem; left: 50%; transform: translateX(-50%); display: flex; gap: .9rem; z-index: 3; }
.rt-hero__dot { width: .7rem; height: .7rem; border-radius: 50%; background: rgba(255,255,255,.45); border: 0; padding: 0; cursor: pointer; }
.rt-hero__dot.is-active { background: #fff; }
@media (max-width: 860px) {
  .rt-hero { height: 44rem; }
  .rt-hero__content { padding: 3rem 1.6rem; }
  .rt-hero__title { font-size: 3.2rem; }
  .rt-hero__eyebrow { font-size: 1rem; letter-spacing: .12em; }
}

/* hero text legibility */
.rt-hero__slide::after { background: linear-gradient(180deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.48) 100%); }
.rt-hero__title { text-shadow: 0 2px 28px rgba(0,0,0,.45); }
.rt-hero__eyebrow { text-shadow: 0 1px 14px rgba(0,0,0,.55); }

/* mobile top bar + hero text */
@media (max-width: 860px) {
  .rt-topbar__inner { grid-template-columns: 1fr; justify-items: center; }
  .rt-topbar__promo { display: none; }
  .rt-hero__eyebrow { font-size: .95rem; letter-spacing: .08em; max-width: 90%; margin-left: auto; margin-right: auto; line-height: 1.5; }
  .rt-hero__title { font-size: 3rem; line-height: 1.1; }
  .rt-hero__content { max-width: 100%; }
}

@media (max-width: 860px) {
  .rt-tools { margin-left: auto; gap: 1.8rem; }
}

/* language switcher */
.rt-langs { display: flex; gap: 1rem; justify-self: end; margin-right: 2rem; font-size: 1.1rem; letter-spacing: .06em; }
.rt-langs a { opacity: .55; }
.rt-langs a:hover { opacity: 1; }
.rt-langs a.is-active { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 860px) { .rt-langs { display: none; } }

/* mobile language switcher inside the drawer */
.rt-langs--mobile { display: none; }
@media (max-width: 860px) {
  .rt-langs--mobile {
    display: flex; gap: 1.4rem; padding: 0 0 2rem; margin-bottom: 1rem;
    border-bottom: 1px solid #e6e2da; color: var(--rt-dark); font-size: 1.3rem;
  }
  .rt-langs--mobile a { opacity: .5; }
  .rt-langs--mobile a.is-active { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
}

/* top bar: language links sit inside the service nav */
.rt-topbar__links .rt-langs { display: inline-flex; gap: 1rem; margin-right: 1.6rem; justify-self: auto; }
.rt-topbar__links .rt-langs a { opacity: .55; }
.rt-topbar__links .rt-langs a.is-active { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }

/* product packshots fill more of the tile */
.rt-card__media { padding: 1rem; }
.rt-card__media img { max-height: 100%; width: auto; transform: scale(1.12); }
.rt-card:hover .rt-card__media img { transform: scale(1.16); }

/* nav mega menu */
.rt-nav__item { position: relative; }
.rt-mega {
  position: absolute; top: 100%; left: -1.6rem; min-width: 28rem;
  background: #fff; color: var(--rt-dark); padding: 1.8rem 2.2rem;
  box-shadow: 0 24px 48px rgba(0,0,0,.14); display: none; z-index: 120;
}
.rt-nav__item.has-mega:hover .rt-mega { display: block; }
.rt-mega__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; font-size: 1.25rem; }
.rt-mega__list a:hover { text-decoration: underline; }

/* section heads + editorial blocks */
.rt-section__head { margin-bottom: .6rem; }
.rt-h3 { font-family: var(--rt-serif); font-weight: 400; font-size: 3.4rem; margin: 0 0 3.2rem; }

.rt-editorial { display: grid; grid-template-columns: 1fr 1fr; min-height: 54rem; background: var(--rt-dark); color: #fff; }
.rt-editorial--reverse .rt-editorial__media { order: 2; }
.rt-editorial__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-editorial__body { display: flex; flex-direction: column; justify-content: center; padding: 6rem 8rem; }
.rt-editorial__body .rt-eyebrow { color: rgba(255,255,255,.6); }
.rt-editorial .rt-h2 { color: #fff; margin: 1rem 0 2.6rem; font-size: 4.2rem; }
.rt-link { color: #fff; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: .35rem; width: max-content; font-size: 1.2rem; letter-spacing: .12em; text-transform: uppercase; }
.rt-link:hover { border-bottom-color: #fff; }

@media (max-width: 860px) {
  .rt-editorial { grid-template-columns: 1fr; min-height: 0; }
  .rt-editorial--reverse .rt-editorial__media { order: 0; }
  .rt-editorial__body { padding: 3.6rem 2rem; }
  .rt-editorial .rt-h2 { font-size: 3rem; }
  .rt-h3 { font-size: 2.8rem; }
  .rt-mega { display: none !important; }
}

/* footer – mirrors rituals.com structure */
.rt-footer { background: #f4f2ee; color: var(--rt-dark); padding: 6rem 0 0; }
.rt-footer__cols { max-width: 1440px; margin: 0 auto; padding: 0 3.2rem 4rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 4rem; }
.rt-footer__col h3 { font-size: 1.1rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; margin: 0 0 1.6rem; }
.rt-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; font-size: 1.25rem; }
.rt-footer__col a { color: #3a3a38; }
.rt-footer__col a:hover { color: #000; text-decoration: underline; text-underline-offset: 3px; }
.rt-footer__phone { margin-top: 2.6rem; }
.rt-footer__phone p { font-size: 1.25rem; color: #3a3a38; margin: .6rem 0 0; line-height: 1.7; }
.rt-footer__apptext { font-size: 1.25rem; color: #3a3a38; margin: 0 0 1.4rem; }
.rt-footer__badges { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2rem; }
.rt-footer__badges a { border: 1px solid #cfc9bd; padding: .7rem 1.4rem; font-size: 1.1rem; letter-spacing: .05em; }
.rt-footer__social { display: flex; gap: 1.4rem; color: #1d1d1b; }
.rt-footer__social a { opacity: .8; }
.rt-footer__social a:hover { opacity: 1; }

.rt-footer__settings { border-top: 1px solid #ddd8cd; background: #efece6; }
.rt-footer__settings h3 { max-width: 1440px; margin: 0 auto; padding: 2.6rem 3.2rem 1.2rem; font-size: 1.05rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.rt-footer__settings form { max-width: 1440px; margin: 0 auto; padding: 0 3.2rem 2.6rem; display: flex; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.rt-footer__settings label { display: grid; gap: .5rem; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; color: #6b6b68; }
.rt-footer__settings select { min-width: 22rem; padding: 1.1rem 1.2rem; border: 1px solid #cfc9bd; background: #fff; font-size: 1.25rem; color: var(--rt-dark); }
.rt-footer__settings button { background: var(--rt-dark); color: #fff; border: 0; padding: 1.25rem 2.4rem; font-size: 1.1rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }

.rt-footer__bottom { background: #efece6; border-top: 1px solid #ddd8cd; }
.rt-footer__bottom { max-width: none; margin: 0; padding: 2rem 3.2rem 2.4rem; display: flex; justify-content: space-between; align-items: center; gap: 2rem; font-size: 1.15rem; color: #6b6b68; flex-wrap: wrap; }
.rt-footer__bottom nav { display: flex; gap: 1.8rem; flex-wrap: wrap; }
.rt-footer__bottom a { color: #3a3a38; }
.rt-footer__bottom a:hover { color: #000; text-decoration: underline; }

@media (max-width: 860px) {
  .rt-footer { padding-top: 4rem; }
  .rt-footer__cols { grid-template-columns: 1fr; gap: 3rem; padding: 0 1.8rem 3rem; }
  .rt-footer__settings h3, .rt-footer__settings form { padding-left: 1.8rem; padding-right: 1.8rem; }
  .rt-footer__settings form { flex-direction: column; align-items: stretch; }
  .rt-footer__settings select { width: 100%; min-width: 0; }
  .rt-footer__bottom { padding: 1.8rem; flex-direction: column; align-items: flex-start; gap: 1.2rem; }
}

/* mobile: language switcher visible and tappable in the top bar */
@media (max-width: 860px) {
  .rt-topbar__inner {
    grid-template-columns: 1fr;
    justify-items: center;
    height: auto;
    padding: .8rem 1.2rem .6rem;
    row-gap: .3rem;
  }
  .rt-topbar__promo { display: none; }
  .rt-logo { position: static; transform: none; font-size: 1.9rem; }
  .rt-topbar__links { display: none; }
  .rt-langs {
    display: flex;
    justify-self: center;
    margin: 0;
    gap: .4rem;
    font-size: 1.1rem;
    letter-spacing: .04em;
  }
  .rt-langs a {
    display: inline-block;
    padding: .35rem .55rem;
    opacity: .65;
    border: 1px solid transparent;
  }
  .rt-langs a.is-active {
    opacity: 1;
    border-color: #fff;
    text-decoration: none;
  }
}

/* product variants (colour swatches + sizes) */
.rt-variants { margin: 0 0 2rem; }
.rt-variant__label { font-size: 1.15rem; letter-spacing: .1em; text-transform: uppercase; color: #6b6b68; margin: 0 0 .9rem; }
.rt-variant__colors { display: flex; gap: .8rem; flex-wrap: wrap; }
.rt-swatch { width: 4.4rem; height: 4.4rem; border: 1px solid #dedad0; border-radius: 50%; padding: .2rem; display: flex; align-items: center; justify-content: center; background: #f6f3ee; }
.rt-swatch img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.rt-swatch.is-active { border-color: var(--rt-dark); box-shadow: 0 0 0 1px var(--rt-dark); }
.rt-variant__sizes { display: flex; gap: .8rem; flex-wrap: wrap; }
.rt-size { min-width: 4.4rem; padding: 1rem 1.2rem; border: 1px solid #dedad0; text-align: center; font-size: 1.25rem; }
.rt-size:hover { border-color: var(--rt-dark); }
.rt-size.is-active { border-color: var(--rt-dark); background: var(--rt-dark); color: #fff; }

/* product cards – rituals proportions */
.rt-card { display: flex; flex-direction: column; }
.rt-card__media { aspect-ratio: 1 / 1; background: #f6f3ee; display: flex; align-items: center; justify-content: center; padding: 1.6rem; }
.rt-card__media img { max-height: 100%; width: auto; transform: scale(1.02); }
.rt-card__name { margin-top: 1.3rem; font-size: 1.4rem; line-height: 1.35; color: #171614; }
.rt-card__sub { margin-top: .35rem; font-size: 1.2rem; color: #6f6f6f; line-height: 1.4; }
.rt-card__price { margin-top: .6rem; font-size: 1.4rem; color: #171614; }
.rt-card__price .amount { font-weight: 500; }

/* horizontal carousel */
.rt-carousel { position: relative; }
.rt-carousel__track {
  display: flex; gap: 2rem; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding-bottom: .4rem;
}
.rt-carousel__track::-webkit-scrollbar { display: none; }
.rt-carousel__track .rt-card { flex: 0 0 calc((100% - 6rem) / 4); scroll-snap-align: start; }
.rt-carousel__arrow {
  position: absolute; top: 34%; width: 4.4rem; height: 4.4rem; border-radius: 50%;
  border: 1px solid #d8d3c8; background: #fff; color: #1d1d1b; font-size: 2.4rem; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 5;
  transition: background .2s, border-color .2s;
}
.rt-carousel__arrow:hover { background: var(--rt-dark); color: #fff; border-color: var(--rt-dark); }
.rt-carousel__arrow--prev { left: -1.4rem; }
.rt-carousel__arrow--next { right: -1.4rem; }
@media (max-width: 1100px) {
  .rt-carousel__track .rt-card { flex: 0 0 calc((100% - 4rem) / 3); }
}
@media (max-width: 860px) {
  .rt-carousel__track { gap: 1.2rem; }
  .rt-carousel__track .rt-card { flex: 0 0 calc((100% - 1.2rem) / 2); }
  .rt-carousel__arrow { display: none; }
}

/* quick add to cart button on product cards */
.rt-card__media { position: relative; }
.rt-card__add {
  position: absolute; right: 1rem; bottom: 1rem;
  width: 4rem; height: 4rem; border-radius: 50%;
  border: 1px solid #1d1d1b; background: #fff; color: #1d1d1b;
  font-size: 2.2rem; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: translateY(6px); transition: opacity .2s, transform .2s, background .2s, color .2s;
}
.rt-card:hover .rt-card__add { opacity: 1; transform: translateY(0); }
.rt-card__add:hover { background: #1d1d1b; color: #fff; }
.rt-card__add.is-loading { opacity: 1; transform: none; }
.rt-card__add.is-added { background: #1d1d1b; color: #fff; opacity: 1; transform: none; }
@media (max-width: 860px) {
  .rt-card__add { opacity: 1; transform: none; width: 3.4rem; height: 3.4rem; font-size: 1.9rem; }
}

/* discover tiles – reference layout */
.rt-section__head--center { text-align: center; margin-bottom: 4rem; }
.rt-section__head--center .rt-h3 { margin-bottom: 0; }
.rt-discover { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.4rem; }
.rt-discover__tile { display: block; }
.rt-discover__tile img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }
.rt-discover__name { display: block; margin-top: 1.4rem; font-family: var(--rt-serif); font-size: 2.2rem; text-align: center; }
.rt-discover__tile:hover .rt-discover__name { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 860px) {
  .rt-discover { grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
  .rt-discover__name { font-size: 1.8rem; margin-top: .9rem; }
}

/* bag + plus quick add button */
.rt-card__add {
  width: 4.4rem; height: 4.4rem; border-radius: 50%;
  border: 1px solid #d9d4c9; background: #fff; color: #1d1d1b;
  display: flex; align-items: center; justify-content: center;
  padding: 0; cursor: pointer;
}
.rt-card__add svg { width: 2rem; height: 2rem; }
.rt-card__add:hover { background: #fff; border-color: #1d1d1b; }
.rt-card__add.is-added { background: #1d1d1b; color: #fff; border-color: #1d1d1b; font-size: 1.8rem; }
@media (max-width: 860px) {
  .rt-card__add { width: 3.8rem; height: 3.8rem; }
}

/* full-width dark mega menu (rituals style) */
.rt-mega--dark {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  width: 100vw; background: #1d1d1b; color: #fff;
  padding: 3.6rem 3.2rem 4rem; display: none;
  grid-template-columns: 28rem 1fr; gap: 4rem;
  box-shadow: 0 30px 60px rgba(0,0,0,.28); z-index: 200;
}
.rt-nav__item.has-mega:hover .rt-mega--dark { display: grid; }
.rt-mega__rail { display: flex; flex-direction: column; gap: .2rem; border-right: 1px solid rgba(255,255,255,.14); padding-right: 2.4rem; }
.rt-mega__rail-item { display: flex; align-items: center; justify-content: space-between; font-family: var(--rt-serif); font-size: 2.5rem; line-height: 1.2; padding: .85rem 0; color: #fff; opacity: .82; }
.rt-mega__rail-item:hover, .rt-mega__rail-item.is-active { opacity: 1; text-decoration: none; }
.rt-mega__rail-item.is-active { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.rt-mega__chev { font-size: 1.5rem; opacity: .6; }
.rt-mega__panels { min-height: 34rem; }
.rt-mega__panel { display: none; }
.rt-mega__panel.is-active { display: block; }
.rt-mega__all { display: inline-block; font-size: 1.1rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin-bottom: 2.6rem; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: .45rem; }
.rt-mega__all:hover { border-bottom-color: #fff; }
.rt-mega__tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem 2rem; }
.rt-mega__tile img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #2a2a28; display: block; }
.rt-mega__tile span { display: block; margin-top: 1rem; font-size: 1.3rem; color: #fff; }
.rt-mega__tile:hover span { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) {
  .rt-mega__tiles { grid-template-columns: repeat(3, 1fr); }
  .rt-mega__rail-item { font-size: 2rem; }
}

/* mega menu positioning: anchor to the header, not the nav item */
.rt-nav__item.has-mega { position: static; }
.rt-header { position: sticky; }
.rt-mega--dark {
  position: absolute; left: 0; top: 100%; width: 100%; transform: none;
  padding: 3.6rem 3.2rem 4rem;
}
.rt-mega__rail { min-width: 26rem; }
.rt-mega__rail-item { color: #fff; }

/* mega menu: closer to the reference layout (2 columns + promo) */
.rt-mega--dark { grid-template-columns: 32rem 1fr 26rem; align-items: start; }
.rt-mega__panels { min-height: 40rem; }
.rt-mega__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4rem 2.4rem; max-width: 78rem; }
.rt-mega__tile img { aspect-ratio: 4 / 3; object-fit: cover; }
.rt-mega__tile span { margin-top: 1.1rem; font-size: 1.35rem; }
.rt-mega__close {
  position: absolute; top: 1.6rem; right: 1.8rem;
  width: 3.6rem; height: 3.6rem; border: 0; background: none; color: #fff;
  font-size: 2.4rem; line-height: 1; cursor: pointer; opacity: .8;
}
.rt-mega__close:hover { opacity: 1; }
.rt-mega__promo { position: relative; display: block; align-self: stretch; }
.rt-mega__promo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-mega__promo span {
  position: absolute; left: 1.6rem; bottom: 1.6rem; color: #fff;
  font-size: 1.1rem; letter-spacing: .14em; text-transform: uppercase;
  border-bottom: 1px solid rgba(255,255,255,.7); padding-bottom: .4rem;
}
@media (max-width: 1200px) {
  .rt-mega--dark { grid-template-columns: 26rem 1fr; }
  .rt-mega__promo { display: none; }
}

/* gifts mega: single panel, dark */
.rt-mega--gifts { grid-template-columns: 1fr; }
.rt-mega--gifts .rt-mega__panels { min-height: 0; }
.rt-mega--gifts .rt-mega__tiles { max-width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .rt-mega--gifts .rt-mega__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* collections mega: large serif list */
.rt-mega--list { grid-template-columns: 1fr; padding: 4rem 3.2rem 4.4rem; }
.rt-mega__collections {
  list-style: none; margin: 0; padding: 0;
  columns: 3; column-gap: 4rem;
}
.rt-mega__collections li { break-inside: avoid; margin: 0 0 1.6rem; }
.rt-mega__collections a {
  font-family: var(--rt-serif); font-size: 2.6rem; line-height: 1.25; color: #fff; opacity: .88;
}
.rt-mega__collections a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
@media (max-width: 1100px) { .rt-mega__collections { columns: 2; } .rt-mega__collections a { font-size: 2.2rem; } }

/* keep mega open while moving into it (hover bridge + JS state) */
.rt-nav__item.is-open .rt-mega--dark { display: grid; }
.rt-mega--dark { pointer-events: auto; }
.rt-mega--dark::before {
  content: ""; position: absolute; left: 0; right: 0; top: -1.2rem; height: 1.2rem;
}

/* mobile accordion submenus inside the drawer */
.rt-nav__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rt-nav__more {
  display: none; width: 3.6rem; height: 3.6rem; border: 1px solid #d9d4c9; background: #fff;
  color: #1d1d1b; font-size: 1.9rem; line-height: 1; border-radius: 50%; cursor: pointer;
  align-items: center; justify-content: center; flex: 0 0 auto;
}
.rt-sub { display: none; list-style: none; margin: .4rem 0 1.2rem; padding: 0 0 0 1rem; border-left: 1px solid #e6e2da; }
.rt-sub li { margin: 0; border: 0 !important; }
.rt-sub a { display: block; padding: .8rem 0; font-size: 1.35rem; color: #3a3a38; }
.rt-nav__item.is-open .rt-sub { display: block; }
.rt-nav__item.is-open .rt-nav__more { background: var(--rt-dark); color: #fff; border-color: var(--rt-dark); }
@media (max-width: 860px) {
  .rt-nav__more { display: inline-flex; }
  .rt-nav__list > li > .rt-nav__row > a { flex: 1; }
}
@media (min-width: 861px) {
  .rt-sub { display: none !important; }
}

/* no separate +/- buttons any more: the row itself opens the submenu */
.rt-nav__more { display: none !important; }

/* collections landing page */
.rt-collections-page { max-width: 1440px; margin: 0 auto; padding: 5rem 3.2rem 7rem; }
.rt-collections-page h2 { font-family: var(--rt-serif); font-weight: 400; font-size: 4rem; margin: 0 0 3.2rem; }
.rt-collections-list { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 4rem; }
.rt-collections-list li { break-inside: avoid; margin: 0 0 1.6rem; }
.rt-collections-list a { font-family: var(--rt-serif); font-size: 2.2rem; color: var(--rt-dark); }
.rt-collections-list a:hover { text-decoration: underline; text-underline-offset: 4px; }
.rt-collections-list span { font-size: 1.2rem; color: #8a8a85; }
.rt-page { max-width: 1440px; margin: 0 auto; padding: 4rem 3.2rem 6rem; }
.rt-page .rt-h2 { font-family: var(--rt-serif); font-weight: 400; font-size: 4rem; margin: 0 0 3rem; }
@media (max-width: 860px) {
  .rt-collections-list { columns: 1; }
  .rt-collections-page, .rt-page { padding: 3rem 1.8rem 4rem; }
}

/* mobile drawer: spacing + type scale */
@media (max-width: 860px) {
  .rt-nav {
    width: 88%;
    padding: 2.4rem 2.6rem 3.2rem;
    box-shadow: -24px 0 60px rgba(0, 0, 0, .16);
  }
  .rt-langs--mobile {
    display: flex;
    justify-content: space-between;
    gap: 0;
    padding: 0 0 1.8rem;
    margin: 0 0 1.2rem;
    border-bottom: 1px solid #e8e4dc;
    font-size: 1.15rem;
    letter-spacing: .08em;
  }
  .rt-langs--mobile a { padding: .4rem .2rem; }
  .rt-nav__list > li { border-bottom: 1px solid #efebe3; }
  .rt-nav__list > li:last-child { border-bottom: 0; }
  .rt-nav__row > a,
  .rt-nav__list > li > .rt-nav__link {
    padding: 1.75rem 0;
    font-size: 1.75rem;
    line-height: 1.25;
    letter-spacing: .005em;
  }
  .rt-sub {
    padding-left: 1.2rem;
    margin: .2rem 0 1.4rem;
    border-left: 1px solid #e8e4dc;
  }
  .rt-sub li { border-bottom: 0; }
  .rt-sub a {
    padding: .8rem 0;
    font-size: 1.4rem;
    color: #4b4b47;
  }
}

/* mobile hero: portrait artwork, proper crop */
.rt-hero__slide picture { position: absolute; inset: 0; display: block; }
@media (max-width: 860px) {
  .rt-hero { height: auto; aspect-ratio: 3 / 4; min-height: 0; }
  .rt-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .rt-hero__content { padding: 3rem 1.8rem; }
}

/* card variant swatches */
.rt-card__swatches { display: flex; align-items: center; gap: .6rem; margin-top: .9rem; }
.rt-card__swatch {
  width: 3.6rem; height: 3.6rem; padding: .15rem; background: #fff;
  border: 1px solid #e0dcd2; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.rt-card__swatch img { width: 100%; height: 100%; object-fit: contain; }
.rt-card__swatch.is-active { border-color: #1d1d1b; box-shadow: 0 0 0 1px #1d1d1b; }
.rt-card__swatch:hover { border-color: #1d1d1b; }
.rt-card__swatch-more { font-size: 1.2rem; color: #6f6f6f; margin-left: .2rem; }

/* card badges + product value */
.rt-card__media { position: relative; }
.rt-card__tag {
  position: absolute; top: 1.2rem; left: 1.2rem; z-index: 3;
  background: #fff; color: #1d1d1b; padding: .55rem .9rem;
  font-size: 1.15rem; line-height: 1.2; letter-spacing: .01em;
}
.rt-card__value { display: block; margin-top: .35rem; font-size: 1.15rem; color: #6f6f6f; }

/* product card typography + hover swatches (rituals style) */
.rt-card { display: flex; flex-direction: column; }
.rt-card__media { position: relative; aspect-ratio: 3 / 4; background: #f6f3ee; display: flex; align-items: center; justify-content: center; padding: 1.6rem; }
.rt-card__media img { max-height: 100%; width: auto; transform: scale(1.02); }
.rt-card__tag {
  position: absolute; left: 1.2rem; bottom: 1.2rem;
  background: #fff; color: #1d1d1b; padding: .6rem 1rem; font-size: 1.2rem; line-height: 1.2;
}
.rt-card__body { display: block; padding-top: 1.6rem; }
.rt-card__name { display: block; font-family: var(--rt-serif); font-size: 2rem; line-height: 1.22; color: #171614; }
.rt-card__sub { display: block; margin-top: .7rem; font-size: 1.2rem; color: #6f6f6f; line-height: 1.45; }
.rt-card__swatches { display: none; gap: .7rem; align-items: center; margin: .4rem 0 1.2rem; }
.rt-card__swatch { width: 4rem; height: 4rem; padding: .2rem; background: #fff; border: 1px solid #e0dcd2; cursor: pointer; }
.rt-card__swatch img { width: 100%; height: 100%; object-fit: contain; }
.rt-card__swatch.is-active { border-color: #1d1d1b; box-shadow: 0 0 0 1px #1d1d1b; }
.rt-card__pricerow { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.rt-card__prices { display: grid; gap: .35rem; }
.rt-card__price { font-family: var(--rt-serif); font-size: 2rem; color: #171614; }
.rt-card__price .amount { font-weight: 400; }
.rt-card__value { font-size: 1.2rem; color: #6f6f6f; }
.rt-card__add {
  width: 4.2rem; height: 4.2rem; border-radius: 50%; border: 1px solid #d9d4c9; background: #fff;
  color: #1d1d1b; display: flex; align-items: center; justify-content: center; cursor: pointer; flex: 0 0 auto;
}
.rt-card__add:hover { border-color: #1d1d1b; }
.rt-card__add.is-added { background: #1d1d1b; color: #fff; }
/* desktop: swatches replace the text block on hover */
@media (min-width: 861px) {
  .rt-card:hover .rt-card__name,
  .rt-card:hover .rt-card__sub { display: none; }
  .rt-card:hover .rt-card__swatches { display: flex; }
}
/* mobile: swatches always visible, title stays */
@media (max-width: 860px) {
  .rt-card__swatches { display: flex; }
  .rt-card__name { font-size: 1.7rem; }
  .rt-card__price { font-size: 1.7rem; }
}

/* card image fit + tag position fixes */
.rt-card__media { overflow: hidden; }
.rt-card__media img {
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  object-fit: contain; transform: none;
}
.rt-card__tag { top: auto; bottom: 1.2rem; left: 1.2rem; }
.rt-card__body { padding-top: 1.4rem; }
.rt-card__pricerow { margin-top: 1.2rem; }

/* bag button sits inline in the price row */
.rt-card__add {
  position: static; right: auto; bottom: auto; transform: none;
  opacity: 1; visibility: visible; font-size: 1.8rem;
}
.rt-card__add.is-loading { opacity: 1; }

/* filter panel */
.rt-filterpanel { max-width: 1440px; margin: 0 auto; padding: 0 3.2rem 2rem; }
.rt-filterpanel[hidden] { display: none; }
.rt-filterpanel__form { display: grid; grid-template-columns: 1fr auto; gap: 2.4rem; background: #f6f3ee; padding: 2.4rem 2.6rem; align-items: end; }
.rt-filterpanel__group { display: grid; gap: 1rem; }
.rt-filterpanel__label { margin: 1.2rem 0 .2rem; font-size: 1.1rem; letter-spacing: .12em; text-transform: uppercase; color: #6f6f6f; }
.rt-filterpanel__checks { display: flex; flex-wrap: wrap; gap: .8rem 2rem; }
.rt-filterpanel__check { display: flex; align-items: center; gap: .6rem; font-size: 1.3rem; }
.rt-filterpanel__price { display: flex; align-items: center; gap: .8rem; }
.rt-filterpanel__price input { width: 11rem; padding: 1rem 1.2rem; border: 1px solid #d9d4c9; font-size: 1.3rem; }
.rt-filterpanel select { padding: 1rem 1.2rem; border: 1px solid #d9d4c9; background: #fff; font-size: 1.3rem; max-width: 34rem; }
.rt-filterpanel__actions { display: flex; align-items: center; gap: 1.8rem; }
.rt-btn--dark { background: #1d1d1b; color: #fff; border: 1px solid #1d1d1b; }
.rt-btn--dark:hover { background: #000; color: #fff; }
.rt-filterpanel__reset { font-size: 1.2rem; color: #6f6f6f; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 860px) {
  .rt-filterpanel { padding: 0 1.8rem 1.6rem; }
  .rt-filterpanel__form { grid-template-columns: 1fr; padding: 1.8rem; }
  .rt-filterpanel__checks { gap: .6rem 1.4rem; }
}

/* mega menu: rituals proportions (rail + 2-column tiles, no promo) */
.rt-mega--dark {
  width: min(96rem, 100%);
  grid-template-columns: 34rem 1fr;
  gap: 0;
  padding: 3.2rem 3.2rem 4rem;
}
.rt-mega__promo { display: none !important; }
.rt-mega__rail { border-right: 1px solid rgba(255,255,255,.14); padding-right: 3.2rem; }
.rt-mega__panels { padding-left: 3.2rem; }
.rt-mega__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4rem 2.4rem; max-width: 60rem; }
.rt-mega__tile img { aspect-ratio: 1 / 1; object-fit: cover; }
.rt-mega__tile span { margin-top: 1rem; font-size: 1.3rem; }
@media (max-width: 1100px) {
  .rt-mega--dark { width: 100%; grid-template-columns: 26rem 1fr; }
  .rt-mega__tiles { max-width: 100%; }
}

/* Neu mega: link list on the left */
.rt-mega__rail--links { gap: 0; border-right: 1px solid rgba(255,255,255,.14); }
.rt-mega__rail-link {
  display: block; font-family: var(--rt-serif); font-size: 2.1rem; line-height: 1.25;
  color: #fff; opacity: .9; padding: 1.05rem 0;
}
.rt-mega__rail-link:hover { opacity: 1; text-decoration: underline; text-underline-offset: 5px; }
.rt-mega--new { grid-template-columns: 40rem 1fr; }
@media (max-width: 1100px) { .rt-mega--new { grid-template-columns: 30rem 1fr; } }

/* Kollektionen mega: narrow single-column list with scroll, like the reference */
.rt-mega--list {
  width: 46rem;
  max-width: 100%;
  grid-template-columns: 1fr;
  padding: 3.2rem 3.2rem 3.6rem;
}
.rt-mega__collections {
  columns: 1;
  max-height: 62vh;
  overflow-y: auto;
  padding-right: 1.2rem;
}
.rt-mega__collections li { margin: 0 0 .4rem; }
.rt-mega__collections a {
  display: block;
  font-size: 2.3rem;
  line-height: 1.25;
  padding: .85rem 0;
  opacity: .9;
}
.rt-mega__collections a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 6px; }
.rt-mega__collections::-webkit-scrollbar { width: 6px; }
.rt-mega__collections::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); }
@media (max-width: 1100px) {
  .rt-mega--list { width: 100%; }
  .rt-mega__collections { max-height: 70vh; }
}

/* Kollektionen: full-height single-column panel like rituals */
.rt-mega--list {
  width: 46rem;
  max-width: 100vw;
  height: calc(100vh - 10.4rem);
  max-height: none;
  padding: 2.4rem 3.2rem 3rem;
  overflow: hidden;
}
.rt-mega__collections {
  columns: 1 !important;
  column-count: 1 !important;
  max-height: 100%;
  height: 100%;
  overflow-y: auto;
  padding-right: 1.4rem;
  list-style: none;
}
.rt-mega__collections li { display: block; margin: 0; padding: 0; }
.rt-mega__collections a {
  display: block;
  font-family: var(--rt-serif);
  font-size: 2.6rem;
  line-height: 1.3;
  padding: 1.05rem 0;
  color: #fff;
  opacity: .92;
}
@media (max-width: 860px) {
  .rt-mega--list { width: 100%; height: auto; max-height: 80vh; }
}

/* collections: vertical scrolling only */
.rt-mega--list { overflow: hidden; box-sizing: border-box; }
.rt-mega__collections {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  white-space: normal !important;
  width: 100%;
  box-sizing: border-box;
}
.rt-mega__collections a {
  white-space: normal;
  overflow-wrap: anywhere;
  max-width: 100%;
}

/* collections: hard single-column block layout (no multicol context) */
.rt-mega__collections {
  display: block !important;
  columns: auto !important;
  column-count: auto !important;
  column-gap: 0 !important;
  column-width: auto !important;
  padding-left: 0 !important;
  padding-right: 1rem !important;
  margin: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.rt-mega__collections li { display: block !important; width: 100% !important; max-width: 100% !important; }
.rt-mega__collections a { display: block !important; width: auto !important; max-width: 100% !important; }

/* cart page – rituals layout */
.rt-carthero { background: #1d1d1b; color: #fff; }
.rt-carthero__inner { max-width: 1440px; margin: 0 auto; padding: 3.2rem 3.2rem 4.6rem; }
.rt-carthero__back { display: inline-block; font-size: 1.15rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.85); margin-bottom: 2.4rem; }
.rt-carthero__back:hover { color: #fff; }
.rt-carthero__title { font-family: var(--rt-serif); font-weight: 400; font-size: 4.4rem; margin: 0; }

.rt-cartwrap { max-width: 1440px; margin: 0 auto; padding: 3.2rem; display: grid; grid-template-columns: 1.6fr .9fr; gap: 3.2rem; align-items: start; }

.rt-cartleft { background: #f7f6f3; padding: 3rem 3.2rem 2.4rem; }
.rt-cartleft__title { font-family: var(--rt-serif); font-weight: 400; font-size: 3.2rem; margin: 0 0 .4rem; }
.rt-cartleft__count { font-size: 1.25rem; color: #6f6f6f; margin: 0 0 2.4rem; }

.rt-cartform { margin: 0; }
.rt-cartitem { display: grid; grid-template-columns: 12rem 1fr auto auto; gap: 2.4rem; align-items: start; padding: 2rem 0; border-top: 1px solid #e6e2da; }
.rt-cartitem__media img { width: 9rem; height: 9rem; object-fit: contain; background: #fff; }
.rt-cartitem__name { display: block; font-family: var(--rt-serif); font-size: 2.2rem; line-height: 1.25; color: #171614; }
.rt-cartitem__sub { display: block; margin-top: .5rem; font-size: 1.2rem; color: #6f6f6f; }
.rt-cartitem__meta { display: block; margin-top: .8rem; font-size: 1.2rem; color: #6f6f6f; }
.rt-cartitem__remove { display: inline-block; margin-top: .8rem; font-size: 1.2rem; text-decoration: underline; text-underline-offset: 3px; color: #3a3a38; }

.rt-qty { display: inline-flex; align-items: center; border: 1px solid #d9d4c9; background: #fff; }
.rt-qty__btn { width: 3.8rem; height: 4.4rem; border: 0; background: none; font-size: 1.8rem; cursor: pointer; color: #1d1d1b; }
.rt-qty__btn:hover { background: #f1eee7; }
.rt-qty__input { width: 4.4rem; height: 4.4rem; border: 0; text-align: center; font-size: 1.4rem; -moz-appearance: textfield; }
.rt-qty__input::-webkit-outer-spin-button, .rt-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.rt-cartitem__price { text-align: right; }
.rt-cartitem__amount { display: block; font-family: var(--rt-serif); font-size: 2.2rem; }
.rt-cartitem__tax { display: block; font-size: 1.15rem; color: #6f6f6f; }
.rt-cart-update { display: none; }

.rt-cartright { background: #f7f6f3; padding: 3rem 3.2rem; }
.rt-cartright__benefits { list-style: none; margin: 0 0 2.4rem; padding: 0 0 2.4rem; border-bottom: 1px solid #e6e2da; display: grid; gap: 1.2rem; font-size: 1.25rem; }
.rt-cartright__benefits li { position: relative; padding-left: 1.6rem; }
.rt-cartright__benefits li::before { content: '•'; position: absolute; left: 0; }
.rt-cartright__rows { display: grid; gap: 0; }
.rt-row { display: flex; justify-content: space-between; align-items: center; padding: 1.7rem 0; border-bottom: 1px solid #e6e2da; font-size: 1.45rem; }
.rt-row--coupon button { background: none; border: 0; font-size: 1.15rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; color: #1d1d1b; }
.rt-row--total { border-bottom: 0; font-family: var(--rt-serif); font-size: 2.4rem; padding-top: 2rem; }
.rt-cartright__tax { margin: -.6rem 0 1.6rem; font-size: 1.15rem; color: #6f6f6f; }
.rt-cartright__gift { font-size: 1.3rem; margin: 0; padding: 1.7rem 0; border-bottom: 1px solid #e6e2da; }
.rt-cartright__gift span { color: #6f6f6f; font-size: 1.2rem; }
.rt-coupon { padding: 1.4rem 0; border-bottom: 1px solid #e6e2da; }
.rt-coupon[hidden] { display: none; }
.rt-coupon input { width: 100%; padding: 1rem 1.2rem; border: 1px solid #d9d4c9; font-size: 1.3rem; margin-bottom: .8rem; }
.rt-coupon .button { width: 100%; background: #1d1d1b; color: #fff; border: 0; padding: 1.2rem; font-size: 1.15rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.rt-cartright__checkout { display: block; margin-top: 2rem; background: #1d1d1b; color: #fff; text-align: center; padding: 1.8rem 2rem; font-size: 1.2rem; letter-spacing: .14em; text-transform: uppercase; }
.rt-cartright__checkout:hover { background: #000; color: #fff; }

@media (max-width: 1100px) { .rt-cartwrap { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
  .rt-carthero__inner { padding: 2.4rem 1.8rem 3rem; }
  .rt-carthero__title { font-size: 3.2rem; }
  .rt-cartwrap { padding: 1.8rem; gap: 1.6rem; }
  .rt-cartleft, .rt-cartright { padding: 2.2rem 1.8rem; }
  .rt-cartitem { grid-template-columns: 8rem 1fr; gap: 1.2rem; }
  .rt-cartitem__qty { grid-column: 2; }
  .rt-cartitem__price { grid-column: 2; text-align: left; }
}

/* cart page: notices sit inside content, page title hidden */
.rt-page__title { display: none; }
.rt-cartwrap .woocommerce-message,
.rt-cartwrap .woocommerce-info,
.rt-cartwrap .woocommerce-error { margin: 0 0 2rem; }

/* page titles stay visible everywhere except cart/checkout */
body.woocommerce-cart .rt-page__title,
body.woocommerce-checkout .rt-page__title,
body.woocommerce-account .rt-page__title { display: none; }
.rt-page__title { display: block; }
.rt-page .entry-content, .rt-page__content { max-width: 900px; margin: 0 auto; padding: 3.2rem; font-size: 1.45rem; line-height: 1.7; }

/* footer: 3 columns after removing the app column */
.rt-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .rt-footer__cols { grid-template-columns: 1fr; } }

/* equal card heights: price row pinned to the bottom */
.rt-grid { align-items: stretch; }
.rt-card { height: 100%; }
.rt-card__body { display: flex; flex-direction: column; flex: 1 1 auto; }
.rt-card__pricerow { margin-top: auto; padding-top: 1.2rem; }

/* carousel cards: equal heights and bottom-aligned prices */
.rt-carousel__track { align-items: stretch; }
.rt-carousel__item { display: flex; }
.rt-carousel__item .rt-card { width: 100%; }

/* footer newsletter column + 4 column grid */
.rt-footer__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3.2rem; }
.rt-newsletter { display: grid; gap: 1rem; margin-top: 1.6rem; max-width: 30rem; }
.rt-newsletter input[type=email] {
  width: 100%; padding: 1.1rem 1.2rem; border: 1px solid #d9d4c9; background: #fff; font-size: 1.3rem;
}
.rt-newsletter button {
  background: #1d1d1b; color: #fff; border: 0; padding: 1.2rem 1.6rem; font-size: 1.15rem;
  letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
}
.rt-newsletter button:hover { background: #000; }
.rt-newsletter__ok { margin-top: 1rem; font-size: 1.2rem; color: #2e6b3f; }
@media (max-width: 1100px) { .rt-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .rt-footer__cols { grid-template-columns: 1fr; } }

/* footer hotline column */
.rt-footer__hotline { font-size: 1.3rem; line-height: 1.7; margin: 1.2rem 0 0; }
.rt-footer__hotline a { color: #1d1d1b; }

/* payment brand icons */
.rt-pay-brands { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin: 1.8rem 0 1.4rem; }
.rt-pay-brands img {
  width: 4.2rem; height: 2.6rem; object-fit: contain; box-sizing: border-box; padding: 1px;
  background: #fff; border: 1px solid #ddd; border-radius: 3px; display: block; flex: 0 0 auto;
}

/* hide large gateway logos inside payment options (keep our small brand row) */
.wc_payment_methods .wc_payment_method > img,
.wc_payment_methods .wc_payment_method .payment_box img,
.wc_payment_methods .wc_payment_method .payment_box .pay-brands { display: none !important; }

/* hide gateway logos shown inside the payment option label */
.wc_payment_method label img,
.wc_payment_method label > img,
.wc_payment_method .payment_box > img { display: none !important; }

/* mobile: compact 2-column product grid, no horizontal overflow */
@media (max-width: 860px) {
  html, body { overflow-x: hidden; }
  .rt-grid, .rt-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1.6rem !important; }
  .rt-card { min-width: 0; }
  .rt-card__media { padding: .8rem; }
  .rt-card__tag { font-size: .95rem; padding: .45rem .6rem; left: .6rem; bottom: .6rem; max-width: calc(100% - 1.2rem); }
  .rt-card__body { padding-top: .9rem; }
  .rt-card__name { font-size: 1.45rem; line-height: 1.25; overflow-wrap: anywhere; }
  .rt-card__sub { font-size: 1.05rem; }
  .rt-card__price { font-size: 1.45rem; }
  .rt-card__swatches { gap: .4rem; margin: .5rem 0 .8rem; }
  .rt-card__swatch { width: 2.8rem; height: 2.8rem; }
  .rt-card__add { width: 3.4rem; height: 3.4rem; }
  .rt-plp { padding: 1rem 1.4rem 4rem; }
  .rt-toolbar { flex-wrap: wrap; gap: 1rem; }
  .rt-sort select { max-width: 14rem; }
}

/* mobile product page: thumbnails as a horizontal strip */
@media (max-width: 860px) {
  .rt-pdp__gallery { display: flex; flex-direction: column-reverse; gap: 1rem; }
  .rt-pdp__thumbs { display: flex; flex-direction: row; gap: .8rem; overflow-x: auto; padding-bottom: .4rem; }
  .rt-thumb { width: 6.4rem; height: 6.4rem; flex: 0 0 auto; }
  .rt-thumb img { width: 100%; height: 100%; object-fit: contain; }
  .rt-pdp__stage img { width: 100%; height: auto; }
  .rt-pdp { padding: 0 1.4rem 4rem; }
  .rt-pdp__title { font-size: 2.6rem; }
  .rt-pdp__price { font-size: 2.2rem; }
  .rt-pdp__buy { flex-direction: column; align-items: stretch; }
  .rt-pdp__buy .rt-btn { width: 100%; }
}

/* mobile homepage carousel: equal card heights, aligned prices */
@media (max-width: 860px) {
  .rt-carousel__track { display: flex; align-items: stretch; gap: 1.2rem; }
  .rt-carousel__track .rt-card { flex: 0 0 78%; width: 78%; display: flex; flex-direction: column; height: auto; }
  .rt-carousel__track .rt-card__media { aspect-ratio: 3 / 4; width: 100%; padding: .8rem; }
  .rt-carousel__track .rt-card__media img { max-width: 100%; max-height: 100%; width: auto; height: auto; margin: auto; }
  .rt-carousel__track .rt-card__body { display: flex; flex-direction: column; flex: 1 1 auto; }
  .rt-carousel__track .rt-card__pricerow { margin-top: auto; }
}

/* align price rows inside mobile carousel cards */
@media (max-width: 860px) {
  .rt-carousel__track .rt-card__pricerow { min-height: 5.4rem; align-items: flex-end; padding-top: .6rem; }
  .rt-carousel__track .rt-card__value { font-size: 1rem; }
}

/* card text blocks fixed height so swatches line up across cards */
.rt-card__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.5em;
}
.rt-card__sub {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 1.5em;
}
.rt-card__swatches { align-items: center; }
@media (max-width: 860px) {
  .rt-card__name { min-height: 2.5em; }
  .rt-card__sub { min-height: 1.5em; }
}

/* keep the price/value two-row block identical across cards */
.rt-card__prices { align-content: end; }
.rt-card__value { min-height: 1.5em; }

/* selected variant name under the swatches */
.rt-variant__current { margin: .5rem 0 0; font-size: 1.2rem; color: #6f6f6f; min-height: 1.4em; }

/* variant ingredients line (rituals shows "Zutaten: ..." above the swatches) */
.rt-variant__ingredients { margin: .2rem 0 .2rem; font-size: 1.2rem; color: #3a3a38; min-height: 1.5em; }
.rt-variant__ingredients-label { color: #6f6f6f; margin-right: .4rem; }
.rt-variant__ingredients[hidden] { display: none; }

/* PDP main image: tall 3:4 frame with hover zoom (closer to rituals) */
.rt-pdp__stage {
  aspect-ratio: 3 / 4;
  padding: 2rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rt-pdp__stage img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .45s ease;
}
.rt-pdp__stage:hover img { transform: scale(1.06); }
@media (max-width: 860px) {
  .rt-pdp__stage { aspect-ratio: 3 / 4; padding: 1rem; }
}

/* blend white packshot backgrounds into the cream stage (like transparent rituals shots) */
.rt-pdp__stage img { mix-blend-mode: multiply; }
.rt-card__media img { mix-blend-mode: multiply; }

/* key ingredients line above the swatches */
.rt-variant__zutaten { margin: 0 0 .6rem; font-size: 1.25rem; color: #3a3a38; min-height: 1.4em; }
.rt-variant__zutaten-label { color: #6f6f6f; margin-right: .4rem; }
