/*
Theme Name: Luna Interiors
Theme URI: https://lunainteriors.ro
Author: Luna Interiors
Description: Custom block theme for Luna Interiors — boutique interior design studio & curated shop. Built for WooCommerce, bilingual (RO/EN), with on-brand block patterns the studio can compose freely.
Version: 0.1.3
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
Text Domain: luna
Tags: full-site-editing, block-patterns, woocommerce, e-commerce, portfolio
*/

/* Block themes define their styles in theme.json. This file is for
   incidental CSS only; keep design tokens in theme.json. */

/* --- Logo ---------------------------------------------------------------
   Inline SVGs use fill: currentColor, so the logo colour follows the text
   colour of its context (ink on light backgrounds; set to white on the hero). */
.luna-logo {
	display: inline-flex;
	align-items: center;
	color: var(--wp--preset--color--ink);
	line-height: 0;
}
.luna-logo:hover,
.luna-logo:focus {
	color: var(--wp--preset--color--ink);
}
.luna-logo .luna-logo__mark {
	display: block;
	height: 75px;          /* stacked mark in the header */
	width: auto;
}
.luna-logo--footer .luna-logo__mark {
	height: 26px;          /* inline wordmark in the footer */
}

/* --- Layout: pin the footer to the bottom on short pages ---------------- */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}
.wp-site-blocks > footer {
	margin-top: auto;
}

/* --- Single project ------------------------------------------------------ */
.luna-project__intro {
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
}
.luna-project__title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.75rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--wp--preset--color--ink);
	margin: 0 0 1.8rem;
}
.luna-project__field {
	margin-bottom: 1.4rem;
}
.luna-project__label {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.72rem;
	color: var(--wp--preset--color--ink);
	margin-bottom: 0.3rem;
}
.luna-project__value {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 0.95rem;
	color: var(--wp--preset--color--warm-grey);
}
.luna-project__desc {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.9rem;
	line-height: 1.75;
	color: var(--wp--preset--color--ink);
	margin-top: 2rem;
}
.luna-project__next,
.luna-project__nav a {
	font-family: var(--wp--preset--font-family--sans);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.72rem;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.luna-project__next {
	margin-top: 2.5rem;
}
.luna-project__hero img {
	display: block;
	width: 100%;
	height: auto;
}
/* Per-project hero framing (ratio + focal point + zoom), applied by the
   luna-core render_block filter when a project sets a hero ratio. */
.luna-project__hero.is-luna-hero-framed {
	aspect-ratio: var(--luna-hero-ratio);
	overflow: hidden;
}
.luna-project__hero.is-luna-hero-framed img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--luna-focus, 50% 50%);
	transform: scale(var(--luna-hero-zoom, 1));
	transform-origin: var(--luna-focus, 50% 50%);
}
.luna-project__body {
	margin-top: var(--wp--preset--spacing--50);
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}
.luna-project__nav {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--sand);
}

/* Images fill their container width by default — a small image scales UP to the
   box instead of sitting at its native size. The figure fills as a normal block
   (not a forced width:100%), so the client can inset an image responsively with
   the Margin control (Dimensions panel) and it narrows instead of overflowing.
   Resizing an image (.is-resized) still opts out with a fixed size. Editor too. */
.wp-block-image:not(.is-resized) {
	display: block;
}
.wp-block-image:not(.is-resized) img {
	display: block;
	width: 100%;
	height: auto;
}
/* Self-hosted video gets the same fill-by-default treatment as images. */
.wp-block-video {
	display: block;
}
.wp-block-video video {
	display: block;
	width: 100%;
	height: auto;
}
/* Video aspect-ratio crops (set via the video block's Proporții control).
   Class lands on the figure (front end) or the block wrapper (editor); the
   descendant `video` selector covers both. object-fit:cover fills the frame. */
[class*="has-luna-ratio-"] video {
	object-fit: cover;
	object-position: var(--luna-focus, center);
}
.has-luna-ratio-16-9 video { aspect-ratio: 16 / 9; }
.has-luna-ratio-3-2 video  { aspect-ratio: 3 / 2; }
.has-luna-ratio-4-3 video  { aspect-ratio: 4 / 3; }
.has-luna-ratio-10-9 video { aspect-ratio: 10 / 9; }
.has-luna-ratio-1-1 video  { aspect-ratio: 1 / 1; }
.has-luna-ratio-3-4 video  { aspect-ratio: 3 / 4; }
.has-luna-ratio-2-3 video  { aspect-ratio: 2 / 3; }
.has-luna-ratio-9-16 video { aspect-ratio: 9 / 16; }
/* Responsive width presets (image/video Styles panel). max-width + core's
   auto-centering gives a centered item that scales — no fixed pixels.
   Steps 95%→50%; "Default" = full width. Add/remove steps here + in functions.php. */
.wp-block-image.is-style-luna-w-95, .wp-block-video.is-style-luna-w-95 { max-width: 95%; }
.wp-block-image.is-style-luna-w-90, .wp-block-video.is-style-luna-w-90 { max-width: 90%; }
.wp-block-image.is-style-luna-w-85, .wp-block-video.is-style-luna-w-85 { max-width: 85%; }
.wp-block-image.is-style-luna-w-80, .wp-block-video.is-style-luna-w-80 { max-width: 80%; }
.wp-block-image.is-style-luna-w-75, .wp-block-video.is-style-luna-w-75 { max-width: 75%; }
.wp-block-image.is-style-luna-w-70, .wp-block-video.is-style-luna-w-70 { max-width: 70%; }
.wp-block-image.is-style-luna-w-65, .wp-block-video.is-style-luna-w-65 { max-width: 65%; }
.wp-block-image.is-style-luna-w-60, .wp-block-video.is-style-luna-w-60 { max-width: 60%; }
.wp-block-image.is-style-luna-w-55, .wp-block-video.is-style-luna-w-55 { max-width: 55%; }
.wp-block-image.is-style-luna-w-50, .wp-block-video.is-style-luna-w-50 { max-width: 50%; }
/* "Mare + mică" arrangements: the smaller image fills 80% of its column, centered. */
.luna-proj-row--80r > .wp-block-column:last-child .wp-block-image,
.luna-proj-row--80l > .wp-block-column:first-child .wp-block-image {
	width: 80%;
	margin-inline: auto;
}
/* Gap between columns inside a row matches the 40px gap between stacked rows,
   so horizontal and vertical spacing are consistent (default columns gap is 24px). */
.wp-block-columns.luna-proj-row {
	gap: var(--wp--preset--spacing--40);
}

@media (max-width: 781px) {
	.luna-project__intro.wp-block-columns {
		gap: var(--wp--preset--spacing--40);
	}
	/* collapse the empty "whitespace" columns so images stack full-width on mobile */
	.luna-proj-row .wp-block-column:empty {
		display: none;
	}
}

/* --- Galerie / portfolio grid -------------------------------------------- */
.luna-gallery .wp-block-post-template {
	gap: var(--wp--preset--spacing--40);
}
.luna-gallery .wp-block-post-template.is-layout-grid {
	grid-template-columns: repeat(3, 1fr);
}
.luna-gallery__img {
	margin: 0;
}
.luna-gallery__img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.luna-gallery__meta {
	margin-top: 0.75rem;
	align-items: baseline;
}
.luna-gallery__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-weight: 400;
	font-size: 1.14rem;
	letter-spacing: 0.01em;
}
.luna-gallery__title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.luna-gallery__plus {
	font-size: 1.1rem;
	line-height: 1;
	color: var(--wp--preset--color--ink);
}

@media (max-width: 960px) {
	.luna-gallery .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 600px) {
	.luna-gallery .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

/* --- Homepage hero ------------------------------------------------------- */
.luna-hero {
	/* cancel WP's `:where(.wp-site-blocks) > * { margin-block-start: 24px }`
	   so the hero meets the very top (header overlays it) */
	margin-block-start: 0;
	margin-top: 0;
	/* dvh tracks the iOS toolbar so the hero always fills the visible viewport
	   (vh fallback for older browsers) */
	min-height: 100vh;
	min-height: 100dvh;
}
.luna-hero__logo {
	margin: 0;
	line-height: 0;
	color: #ffffff;
	display: flex;
	justify-content: center;
	opacity: 0.7;   /* 70% opacity */
}
.luna-hero__mark {
	display: block;
	width: clamp(150px, 16vw, 230px);
	height: auto;
}

/* Homepage: transparent header overlaying the hero, white, MENU only */
body.home .wp-site-blocks > header {
	position: absolute;
	inset: 0 0 auto 0;
	z-index: 10;
}
body.home .site-header__bar,
body.home .menu-toggle {
	color: #ffffff;   /* white MENU over the hero — scoped to the bar, not the drawer */
}
body.home .site-header__left,
body.home .site-header__logo {
	display: none;   /* hero wordmark is the brand here; no cart/small logo */
}
/* Only MENU remains on the homepage — keep it at the right edge. */
body.home .site-header__bar {
	display: flex;
	justify-content: flex-end;
}

/* --- Header bar ---------------------------------------------------------- */
.site-header__bar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: start;
	padding: 1.5rem 2.5rem;
}
/* The bar is a flow-layout group; WP's `:where(.is-layout-flow) > *` adds
   margin-block-start:24px to its non-first children (the logo and the right/menu
   zone). Zero it on each — same fix as the drawer aside — so logo, cart and
   menu all align to the top. */
.site-header__left,
.site-header__logo,
.site-header__right {
	margin-block-start: 0;
}
.site-header__left {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	justify-self: start;
}
.site-header__icon {
	display: block;
	width: 22px;
	height: auto;
}
.site-header__cart {
	display: inline-flex;
	align-items: center;
}
/* Language switcher (header, beside the cart): EN | RO — active vs inactive. */
.luna-lang {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1;
}
.luna-lang__item {
	text-decoration: none;
}
.luna-lang__item.is-active {
	color: #282522;
}
a.luna-lang__item {
	color: #583624;
	opacity: 0.5;
}
.luna-lang__sep {
	color: #583624;
	opacity: 0.5;
}
/* Hide WPML's default footer language switcher — we have our own in the header. */
.wpml-ls-statics-footer {
	display: none;
}
/* Gallery "Includes video tour" badge (only on projects whose content has video). */
.luna-proj-video {
	display: flex;
	align-items: center;
	gap: 0.45em;
	margin: 0.35rem 0 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
}
.luna-proj-video__icon {
	display: inline-flex;
}
.luna-proj-video__icon svg {
	display: block;
	width: auto;
	height: 0.85em;
}
.luna-drawer__close-icon {
	display: block;
	width: auto;
	height: 12px;
}
.site-header__right {
	justify-self: end;
}
.site-header__logo {
	justify-self: center;
}
.site-header__link,
.menu-toggle {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	line-height: 1;
}

/* --- Menu drawer (right slide-in, no backdrop) --------------------------- */
.luna-drawer {
	position: fixed;
	inset: 0 0 0 auto;            /* pin to the right edge, full height */
	width: min(440px, 90vw);
	z-index: 1000;
	background: var(--wp--preset--color--cream);
	padding: var(--wp--preset--spacing--40);
	overflow: hidden auto; /* vertical scroll only; never overflow/scroll horizontally */
	transform: translateX(100%);
	transition: transform 0.35s ease;
	gap: var(--wp--preset--spacing--30);
	margin: 0; /* kill the flow-layout margin-block-start the aside inherits as a .site-header child */
}
.luna-drawer.is-open {
	transform: translateX(0);
}
/* WP's flex layout defaults to flex-wrap:wrap, which makes tall content wrap
   into a second column; force a single scrolling column instead. */
.luna-drawer.luna-drawer {
	flex-wrap: nowrap;
}
.luna-drawer__close {
	align-self: flex-end;
	background: none;
	border: 0;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	color: var(--wp--preset--color--brand);
	padding: 0;
}
.luna-drawer__logo .luna-logo__mark {
	height: 40px;
}
.luna-drawer__intro {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.8125rem;
	color: #282522;
	max-width: none;
	width: 100%;
}
.luna-drawer .luna-drawer__social {
	margin-top: auto;            /* pin to the bottom (beats WP's `.is-layout-flex > :is(*,div){margin:0}`) */
	font-size: 0.7875rem;        /* 10% smaller */
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--brand);
	text-decoration: none;
}

/* Drawer navigation: vertical, uppercase, click-to-expand submenu */
.luna-drawer__nav {
	font-family: var(--wp--preset--font-family--sans);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.715rem; /* ~12% smaller */
	gap: var(--wp--preset--spacing--20);
}
/* ~65px between the subheader and the nav. The drawer's flex `gap` already
   adds 24px, so the remainder goes here. The `>` matches only the <nav> (the
   Navigation block puts this class on its inner <ul> too); selector out-
   specifies WP's `.is-layout-flex > :is(*,div) { margin: 0 }`. */
.luna-drawer > .luna-drawer__nav {
	margin-top: calc(65px - var(--wp--preset--spacing--30));
}
.luna-drawer__nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
}
.luna-drawer__nav .wp-block-navigation__submenu-container {
	gap: 0.5rem;
	padding-left: var(--wp--preset--spacing--20);
}

/* --- Footer -------------------------------------------------------------- */
/* Footer scaled ~30% smaller (×0.7) throughout — except the ANPC image,
   which stays at its original 190px. */
.luna-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr;
	gap: 1.75rem;
	align-items: start;
	margin-left: 30px;
	margin-right: 30px;
}
/* These are now real block groups (is-layout-flow), so WP adds margin-block-start
   to their non-first children; zero it so grid/flex alignment isn't thrown off. */
.luna-footer__grid > *,
.luna-footer__links-group > * {
	margin-block-start: 0;
}
.luna-footer__logo .luna-logo__mark {
	height: 66px;
}
/* Transparent on desktop/tablet so the three navs remain grid items of
   .luna-footer__grid; becomes a wrapping flex row on mobile (see media query). */
.luna-footer__links-group {
	display: contents;
}
/* Mobile-only ANPC badge that sits below the newsletter (the in-column one is
   hidden on mobile). Hidden on desktop/tablet. */
.luna-footer__anpc-m {
	display: none;
}
.luna-footer__anpc-m img {
	width: 190px;
	height: auto;
}
/* Each column is now a Navigation block (<nav><ul><li><a>); the block renders the
   vertical list + item gap (blockGap). We just reset list chrome + style links. */
.luna-footer__links ul {
	margin: 0;
	padding: 0;
	gap: 0.5rem;
}
.luna-footer__links a {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.55rem;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	padding: 0;
}
.luna-footer__links a:hover {
	text-decoration: underline;
}
.luna-footer__anpc {
	display: inline-block;
	margin-top: 0.42rem;
}
.luna-footer__anpc img {
	display: block;
	width: 190px;       /* unchanged, per request */
	height: auto;
}
.luna-newsletter {
	justify-self: end;
}
.luna-newsletter__title {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 700;
	font-size: 1.09rem; /* ~25px × 0.7 */
	letter-spacing: 0.02em;
	margin: 0 0 0.7rem;
}
.luna-newsletter__form {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	max-width: 240px;
}
.luna-newsletter__field {
	display: flex;
	align-items: center;
	gap: 0;
}
.luna-newsletter__label {
	font-size: 0.63rem;
	color: var(--wp--preset--color--ink);
	white-space: nowrap;
	margin-right: 0.28rem;
}
.luna-newsletter__field input {
	flex: 1;
	min-width: 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--ink);
	background: transparent;
	padding: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.63rem;
	color: var(--wp--preset--color--ink);
}
.luna-newsletter__field input:focus {
	outline: none;
}
.luna-newsletter__arrow {
	display: flex;
	align-items: center;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: var(--wp--preset--color--ink);
}
.luna-newsletter__arrow svg {
	display: block;
	width: 5px;
	height: auto;
}
.luna-newsletter__submit {
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--base);
	border: 0;
	padding: 0.52rem 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.55rem;
	cursor: pointer;
}
.luna-newsletter__fine {
	font-size: 0.49rem;
	color: var(--wp--preset--color--warm-grey);
	margin: 0;
	width: 100%;
}

/* ===================== Contact form (placeholder — delivery wired at launch) ===================== */
.luna-contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	max-width: 460px;
}
.luna-contact-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.luna-contact-form__field label {
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
}
.luna-contact-form__field input,
.luna-contact-form__field textarea {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--sand);
	background: transparent;
	padding: 0.45rem 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1rem;
	color: var(--wp--preset--color--ink);
	width: 100%;
	box-sizing: border-box;
}
.luna-contact-form__field textarea {
	resize: vertical;
}
.luna-contact-form__field input:focus,
.luna-contact-form__field textarea:focus {
	outline: none;
	border-bottom-color: var(--wp--preset--color--brand);
}
.luna-contact-form__submit {
	align-self: flex-start;
	margin-top: 0.4rem;
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--base);
	border: 0;
	padding: 0.8rem 1.6rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.72rem;
	font-family: var(--wp--preset--font-family--sans);
	cursor: pointer;
}
.luna-contact-form__submit:hover {
	opacity: 0.9;
}

/* ===================== FAQ accordion (core/details) ===================== */
.wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--sand);
	padding: 1.15rem 0;
}
.wp-block-details > summary {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.3rem;
	line-height: 1.3;
	cursor: pointer;
	list-style: none;
}
.wp-block-details > summary::-webkit-details-marker {
	display: none;
}
.wp-block-details[open] > summary {
	margin-bottom: 0.7rem;
}

/* ===================== Despre / About (editorial collage) ===================== */
.luna-about {
	--about-margin: 11%;
	padding: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--60);
	color: #282522;
	overflow: hidden;
}
/* Inner wrapper carries the cap + centring (a normal block, so alignfull's
   margin rules don't pin it left on screens wider than the cap). */
.luna-about__inner {
	max-width: 1920px;
	margin-inline: auto;
}
.luna-about p {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.05rem;
	line-height: 1.5;
	color: #282522;
	margin: 0;
}
.luna-about em {
	font-style: italic;
}

/* Intro — the left column sets the flow height; the right column is absolute so
   it doesn't push the collage down, letting box 1's top rise above its baseline. */
.luna-about__intro {
	display: grid;
	grid-template-columns: var(--about-margin) 28% 1fr 28% var(--about-margin);
	align-items: start;
	margin-bottom: clamp(0.5rem, 1vw, 1rem);
}
.luna-about__intro .luna-about__lead {
	grid-column: 2;
}
.luna-about__intro-right {
	grid-column: 4;
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
}

/* Collage — one continuous stitched canvas of 5 overlapping, offset photo-placeholder tiles */
.luna-about__collage,
.luna-about__band {
	position: relative;
	width: 100%;
}
.luna-about__tile {
	position: absolute;
}
/* Boxes 1–4 share one canvas; cream (2) + taupe (3) are single tall boxes */
.luna-about__collage {
	aspect-ratio: 1920 / 1499;
	margin-top: 0;
}
/* box 1 pulls up into the left whitespace (no text there) to overlap the right
   paragraph, while the rest of the collage stays below it — so no text is covered. */
.luna-about__tile--1 { left: 11%; top: -6%; width: 34.5%; aspect-ratio: 662 / 539; z-index: 1; }
.luna-about__tile--2 { left: 43%; top: 5%;  width: 46%;   height: 52%;              z-index: 2; }
.luna-about__tile--3 { left: 11%; top: 47%; width: 41%;   height: 46%;              z-index: 3; }
.luna-about__tile--4 { left: 49%; top: 70%; width: 40.2%; aspect-ratio: 771 / 457;  z-index: 2; }
/* Box 5 — tall centre tile */
.luna-about__band--c {
	aspect-ratio: 1920 / 1250;
	margin-top: clamp(1.5rem, 4vw, 4rem);
}
.luna-about__tile--5 { left: 26.9%; top: 0; width: 46.2%; aspect-ratio: 887 / 1250; }

/* Shop copy — set in the left and centre-right margins */
.luna-about__shop {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem 4%;
	align-items: start;
	padding: 0 var(--about-margin);
	margin: clamp(2.5rem, 6vw, 5rem) 0;
}
.luna-about__text {
	max-width: 30rem;
}
.luna-about__text--right {
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
}

/* Mobile — collapse the collage into a single readable column */
@media (max-width: 900px) {
	.luna-about__intro { display: block; margin-bottom: 1.6rem; padding: 0 var(--about-margin); }
	.luna-about__intro .luna-about__lead { margin-bottom: 1.6rem; }
	.luna-about__intro-right { grid-column: auto; }
	.luna-about__collage,
	.luna-about__band { aspect-ratio: auto !important; margin-top: 1.25rem; }
	.luna-about__tile {
		position: static;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 3 / 2 !important;
		margin-bottom: 1.25rem;
	}
	.luna-about__tile--5 { aspect-ratio: 4 / 5 !important; }
	.luna-about__shop { grid-template-columns: 1fr; gap: 1.6rem; }
	.luna-about__text { max-width: none; }
}

/* ===================== Shop — product archive ===================== */
.luna-shop__head {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	margin-bottom: var(--wp--preset--spacing--40);
}
.luna-shop__title {
	grid-column: 2;
	text-align: center;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.9rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #282522;
	margin: 0;
}
/* Search — a label that expands inline on open (native <details>, no JS) */
.luna-shop__search {
	grid-column: 1;
	justify-self: start;
	display: flex;
	align-items: center;
	gap: 0.7rem;
}
.luna-shop__search > summary {
	list-style: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.9rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #282522;
}
.luna-shop__search > summary::-webkit-details-marker { display: none; }
.luna-shop__search-form { display: flex; align-items: center; gap: 0.4rem; }
.luna-shop__search-form input[type="search"] {
	border: 0;
	border-bottom: 1px solid #282522;
	background: transparent;
	padding: 0.15rem 0;
	width: 12rem;
	max-width: 40vw;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.85rem;
	color: #282522;
}
.luna-shop__search-form input[type="search"]:focus { outline: none; }
.luna-shop__search-form button {
	background: none; border: 0; padding: 0; cursor: pointer;
	color: #282522; display: flex;
}
.luna-shop__search-form button svg { width: 6px; height: auto; display: block; }

/* Product grid — 4 near-flush square tiles */
.luna-shop__grid.is-layout-grid {
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 6px;
}
.luna-shop__grid > li { margin: 0; }
.luna-shop__img {
	margin: 0;
	background: var(--wp--preset--color--brand);
	overflow: hidden;
	aspect-ratio: 1 / 1;
}
.luna-shop__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.luna-shop__meta {
	margin-top: 0.55rem;
	align-items: baseline;
	gap: 0.5rem;
}
.luna-shop__name {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 400;
	font-size: 0.82rem;
	line-height: 1.3;
}
.luna-shop__name a { color: #282522; text-decoration: none; }
.luna-shop__price {
	margin: 0;
	text-align: right;
	white-space: nowrap;
}
.luna-shop__price,
.luna-shop__price .woocommerce-Price-amount {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.82rem;
	color: #282522;
}
.luna-shop__price del { opacity: 0.5; }
.luna-shop__pagination { margin-top: var(--wp--preset--spacing--50); }
@media (max-width: 900px) {
	.luna-shop__grid.is-layout-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 520px) {
	.luna-shop__grid.is-layout-grid { grid-template-columns: 1fr !important; }
}

/* ===================== Responsive ===================== */

/* Tablet and below */
@media (max-width: 960px) {
	/* Header: trim padding, slightly smaller logo */
	.site-header__bar {
		padding: 1.25rem 1.5rem;
	}
	.site-header__logo .luna-logo__mark {
		height: 60px;
	}

	/* Footer: logo on its own row, the three link columns in a row,
	   newsletter full-width below. Drop the desktop side margin. */
	.luna-footer__grid {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2rem 1.5rem;
		align-items: start;
		margin-left: 0;
		margin-right: 0;
	}
	.luna-footer__brand {
		grid-column: 1 / -1;
	}
	.luna-newsletter {
		grid-column: 1 / -1;
		justify-self: start;
	}
}

/* Mobile */
@media (max-width: 600px) {
	/* Header */
	.site-header__bar {
		padding: 1rem 1.25rem;
	}
	.site-header__logo .luna-logo__mark {
		height: 65px;   /* 25% bigger */
	}

	/* Menu drawer: full-screen panel with comfortable padding */
	.luna-drawer {
		width: 100vw;
		padding: var(--wp--preset--spacing--30);
	}
	.luna-drawer__intro {
		font-size: 1.03rem;   /* mobile: ~26% bigger than base (0.8125rem) */
		color: var(--wp--preset--color--brand);   /* #583624 */
		opacity: 0.8;
	}
	.luna-drawer__nav {
		font-size: 0.944rem;   /* mobile: ~32% bigger than base */
	}
	.luna-drawer .luna-drawer__social {
		align-self: flex-start;   /* left-align */
		margin-bottom: 20px;
	}

	/* Footer: single-column stack with readable (un-shrunk) type */
	.luna-footer__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.luna-footer__brand {
		text-align: center;   /* center the wordmark on mobile */
	}
	/* Hide the first link group (Blog/Despre/Shop/Galerie) on mobile —
	   redundant with the menu drawer. (First child of the group = col 1.) */
	.luna-footer__links-group > :first-child {
		display: none;
	}
	.luna-footer__logo .luna-logo__mark {
		height: 58px;   /* 20% smaller */
	}
	/* Link columns sit side-by-side and wrap to stacked when too narrow. */
	.luna-footer__links-group {
		display: flex;
		flex-wrap: wrap;
		gap: 1.5rem;
	}
	.luna-footer__links-group > * {
		flex: 1 1 120px;
	}
	.luna-footer__links ul {
		gap: 0.85rem;
	}
	.luna-footer__links a {
		font-size: 0.595rem;   /* 30% smaller than the 0.85rem mobile base */
	}
	/* In-column ANPC hidden on mobile; show the standalone one centered below the newsletter. */
	.luna-footer__anpc {
		display: none;
	}
	.luna-footer__anpc-m {
		display: block;
		justify-self: center;
		text-align: center;
	}
	.luna-newsletter {
		width: 100%;
		justify-self: stretch;
	}
	.luna-newsletter__form {
		max-width: none;
	}
	.luna-newsletter__title {
		font-size: 1.25rem;
	}
	.luna-newsletter__label,
	.luna-newsletter__field input {
		font-size: 0.9rem;
	}
	.luna-newsletter__submit {
		font-size: 0.72rem;
		padding: 0.85rem 1rem;
	}
	.luna-newsletter__fine {
		font-size: 0.72rem;
	}
}

/* --- Accessibility utility ---------------------------------------------- */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}
