:root {
  --forest: #053127;
  --forest-deep: #0f241f;
  --forest-soft: #24443b;
  --gold: #caa863;
  --ochre: #866728;
  --brown: #6d5422;
  --cream: #fffbf2;
  --cream-deep: #f5f1e8;
  --paper: #f9f5eb;
  --ink: #18221f;
  --white: #ffffff;
  --line: rgba(134, 103, 40, .2);
  --shell: min(1260px, calc(100vw - 48px));
  --sans: "Jost", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --soft: "Quicksand", var(--sans);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; width: 100%; max-width: 100%; overflow-x: clip; }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: clip; color: var(--ink); background: var(--cream); font-family: var(--sans); line-height: 1.55; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }

/*
 * Hostinger and some maintenance-mode layers can put a classic PHP theme
 * inside a constrained WordPress wrapper. The Lunae header, page bands and
 * footer are deliberately viewport-wide; only .shell controls their content
 * measure. These rules neutralize that outer constraint without changing the
 * readable content grid.
 */
body.lunae-site :is(#page, .wp-site-blocks, .site, .site-content) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
body.lunae-site :is(.announcement-bar, .site-header, #main-content, .site-footer) {
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
}
body.lunae-site #main-content { padding: 0; }
.skip-link { position: fixed; z-index: 1000; left: 1rem; top: 1rem; transform: translateY(-180%); background: var(--white); color: var(--forest); padding: .8rem 1rem; }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

.announcement-bar { background: var(--gold); color: var(--cream); }
.announcement-inner { min-height: 31px; display: flex; justify-content: space-between; align-items: center; gap: 2rem; font-family: var(--soft); font-size: .67rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.site-header { position: sticky; z-index: 50; top: 0; background: rgba(255, 251, 242, .95); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.wordmark { display: block; flex: 0 0 auto; text-decoration: none; }
.lunae-logo, .custom-logo { width: 92px; height: 65px; object-fit: contain; }
.site-navigation { display: flex; align-items: center; gap: 2.2rem; }
.site-navigation ul { display: flex; align-items: center; gap: 2rem; margin: 0; padding: 0; list-style: none; }
.site-navigation a { text-decoration: none; color: var(--ochre); font-size: .73rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; transition: color .2s ease; }
.site-navigation a:hover { color: var(--forest); }
.header-etsy { display: inline-flex; align-items: center; gap: .8rem; min-height: 42px; padding: .65rem .95rem; color: var(--cream) !important; background: var(--forest); border-radius: 8px; }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--ochre); }

.brand-hero { position: relative; min-height: 610px; display: grid; align-items: center; isolation: isolate; background-image: var(--hero-image); background-size: cover; background-position: center; overflow: hidden; }
.brand-hero-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(5,49,39,.92) 0%, rgba(5,49,39,.66) 34%, rgba(5,49,39,.12) 62%, rgba(5,49,39,.04) 100%); }
.brand-hero-inner { padding-block: 5.5rem; }
.brand-hero-inner > * { max-width: 590px; }
.eyebrow { margin: 0 0 1rem; color: var(--gold); font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; font-family: var(--sans); font-weight: 500; letter-spacing: -.025em; }
h1 { margin-bottom: 1.3rem; color: var(--cream); font-size: clamp(3.2rem, 5.7vw, 5.6rem); line-height: .96; }
h2 { margin-bottom: 1rem; color: var(--forest); font-size: clamp(2.4rem, 4.3vw, 4.4rem); line-height: 1; }
.brand-hero-inner > p:not(.eyebrow) { margin: 0 0 2rem; color: rgba(255, 251, 242, .84); font-family: var(--soft); font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; }
.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .single_add_to_cart_button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .82rem 1.25rem; border: 1px solid var(--forest); border-radius: 8px; background: transparent; color: var(--forest); font-size: .71rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; text-decoration: none; transition: background .22s ease, color .22s ease, transform .22s ease; }
.button.primary, .woocommerce a.button:hover, .single_add_to_cart_button { background: var(--forest); border-color: var(--forest); color: var(--cream); }
.brand-hero .button.primary { background: var(--cream); border-color: var(--cream); color: var(--forest); }
.brand-hero .button.ghost { border-color: rgba(255,251,242,.7); color: var(--cream); }
.button:hover, .single_add_to_cart_button:hover { transform: translateY(-2px); }
.text-link, .product-etsy-link { display: inline-flex; gap: .4rem; color: var(--ochre); font-size: .72rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; }

.trust-strip { background: var(--forest); color: var(--cream); }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-grid p { min-height: 82px; display: flex; align-items: center; justify-content: center; gap: .7rem; margin: 0; padding: 1rem; font-family: var(--soft); font-size: .72rem; font-weight: 500; letter-spacing: .03em; text-align: center; }
.trust-grid p + p { border-left: 1px solid rgba(202,168,99,.22); }
.trust-grid span { color: var(--gold); font-size: 1rem; }

.catalog-section { padding-block: clamp(5rem, 9vw, 8.5rem); }
.section-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2rem; margin-bottom: 2.8rem; }
.section-heading .eyebrow { grid-column: auto; }
.section-heading h2 { margin-bottom: .8rem; }
.section-intro { max-width: 650px; margin: 0; color: rgba(24,34,31,.72); font-family: var(--soft); }
.priority-products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.4rem 1.2rem; }
.priority-product { min-width: 0; }
.priority-product-image { display: block; aspect-ratio: 1; margin-bottom: 1rem; overflow: hidden; background: #0a0a0a; }
.priority-product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.priority-product:hover img { transform: scale(1.025); filter: saturate(1.06); }
.priority-product h3 { min-height: 2.7em; margin: 0 0 .45rem; color: var(--ochre); font-size: 1rem; line-height: 1.3; }
.priority-product p { margin: 0 0 .65rem; color: rgba(24,34,31,.58); font-family: var(--soft); font-size: .75rem; }

.intention-section { padding-block: clamp(5rem, 9vw, 8.5rem); background: var(--cream-deep); }
.intention-heading { max-width: 780px; margin-bottom: 2.8rem; }
.intention-heading h2 { margin-bottom: 0; }
.intention-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.intention-card { display: block; color: var(--ochre); font-size: .95rem; font-weight: 600; text-decoration: none; }
.intention-card img { aspect-ratio: 1; width: 100%; border-radius: 18px; object-fit: cover; transition: transform .35s ease, box-shadow .35s ease; }
.intention-card span { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem .1rem 0; }
.intention-card:hover img { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(109,84,34,.15); }

.origin-section { position: relative; min-height: 570px; display: grid; align-items: center; margin-block: clamp(5rem, 10vw, 9rem); padding: clamp(2rem, 6vw, 5rem); border-radius: 22px; isolation: isolate; overflow: hidden; background-image: var(--origin-image); background-size: cover; background-position: center; }
.origin-section::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(5,49,39,.92), rgba(5,49,39,.67) 48%, rgba(5,49,39,.12)); }
.origin-copy { max-width: 620px; color: var(--cream); }
.origin-copy h2 { color: var(--cream); }
.origin-copy > p:not(.eyebrow) { max-width: 540px; margin-bottom: 2rem; color: rgba(255,251,242,.84); font-family: var(--soft); font-size: 1.05rem; }
.button.light { border-color: var(--cream); color: var(--cream); }

.reviews-section { padding-block: clamp(5rem, 9vw, 8.5rem); }
.reviews-heading { max-width: 700px; margin-bottom: 2.8rem; }
.reviews-heading h2 { margin-bottom: .9rem; }
.reviews-rating { margin: 0; color: var(--gold); font-size: 1rem; letter-spacing: .12em; }
.reviews-rating span { margin-left: .6rem; color: rgba(24,34,31,.6); font-family: var(--soft); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-bottom: 2.4rem; }
.review-card { margin: 0; overflow: hidden; background: var(--white); border-radius: 16px; box-shadow: 0 10px 30px rgba(5,49,39,.06); }
.review-photo { aspect-ratio: 1; width: 100%; object-fit: cover; }
.review-body { padding: 1.6rem 1.8rem 1.8rem; }
.review-card.no-photo .review-body { padding-top: 1.9rem; }
.review-stars { margin-bottom: 1rem; color: var(--gold); font-size: .85rem; letter-spacing: .15em; }
.review-quote { margin: 0 0 1.3rem; color: var(--ink); font-family: var(--soft); font-size: .98rem; font-style: italic; line-height: 1.65; }
.review-author { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; margin: 0; color: var(--forest); font-size: .78rem; font-weight: 600; letter-spacing: .03em; }
.review-product { color: rgba(24,34,31,.5); font-family: var(--soft); font-size: .72rem; font-weight: 500; text-align: right; }
.reviews-more { display: inline-flex; }

.etsy-band { background: var(--forest); color: var(--cream); padding-block: clamp(4.5rem, 8vw, 7rem); }
.etsy-band-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3rem; }
.etsy-band h2 { max-width: 850px; margin-bottom: .8rem; color: var(--cream); }
.etsy-band p:not(.eyebrow) { max-width: 700px; margin: 0; color: rgba(255,251,242,.7); font-family: var(--soft); }

.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.4rem 1.2rem !important; margin: 0 !important; padding: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding-bottom: 1rem; }
.woocommerce ul.products li.product a img { aspect-ratio: 1; object-fit: cover; margin: 0 0 1rem !important; background: #0a0a0a; transition: transform .45s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(.985); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.7em; padding: 0 !important; color: var(--ochre); font-size: 1rem !important; line-height: 1.3; }
.woocommerce ul.products li.product .price { color: var(--forest) !important; font-size: .82rem !important; }
.woocommerce ul.products li.product .button { width: 100%; margin-top: .65rem !important; }

.site-main { min-height: 60vh; padding-block: 5rem; }
.content-shell { max-width: 850px; }
.content-shell h1, .error-page h1 { color: var(--forest); font-size: clamp(3.2rem, 7vw, 6rem); }
.catalog-main { padding-top: 3rem; }
.woocommerce .woocommerce-breadcrumb { color: var(--ochre); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce-products-header__title.page-title { margin: 2rem 0 3rem; color: var(--forest); font-size: clamp(3rem, 6vw, 6rem); }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: clamp(3rem,7vw,7rem); }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; }
.woocommerce div.product .product_title { color: var(--forest); font-size: clamp(2.8rem,5vw,4.8rem); line-height: 1; }
.woocommerce div.product p.price { color: var(--ochre); font-size: 1.4rem; }
.woocommerce div.product .woocommerce-product-details__short-description { font-family: var(--soft); font-size: 1.05rem; }
.woocommerce div.product form.cart { display: flex; }
.woocommerce div.product form.cart .button { flex: 1; }
.woocommerce-tabs { grid-column: 1 / -1; }

.site-footer { background: var(--paper); color: var(--ochre); padding-top: 5rem; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .7fr 1fr; gap: 4rem; padding-bottom: 4rem; }
.footer-logo { width: 145px; height: 104px; margin-bottom: .8rem; object-fit: contain; }
.footer-note { max-width: 370px; margin: 0 0 1rem; color: var(--forest); font-family: var(--soft); font-size: 1rem; }
.footer-location, .footer-small { color: rgba(109,84,34,.66); font-family: var(--soft); font-size: .76rem; }
.footer-label { color: var(--forest); font-size: .69rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin-bottom: .7rem; }
.site-footer a { text-decoration: none; }
.footer-cta { display: inline-block; margin: .5rem 0 1rem; color: var(--forest); font-size: 1.2rem; font-weight: 500; }
.footer-email { display: inline-block; margin-top: .7rem; font-size: .82rem; border-bottom: 1px solid currentColor; }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding-block: 1.2rem; border-top: 1px solid var(--line); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }

/* Content is visible by default. Motion is only enabled after site.js loads. */
.reveal { opacity: 1; transform: none; }
.lunae-motion-ready .reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.lunae-motion-ready .reveal.is-visible { opacity: 1; transform: none; }

.story-hero { padding-block: clamp(4.5rem, 9vw, 7rem) clamp(2rem, 4vw, 2.5rem); }
.story-hero h1 { color: var(--forest); }
.story-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: clamp(2.5rem, 6vw, 5rem); }
.story-lede { max-width: 620px; margin: 1.2rem 0 0; color: rgba(24,34,31,.72); font-family: var(--soft); font-size: 1.1rem; line-height: 1.75; }
.story-portrait-figure { margin: 0; }
.story-portrait { width: 100%; aspect-ratio: 4 / 5; border-radius: 20px; object-fit: cover; box-shadow: 0 26px 60px rgba(5,49,39,.2); }
.story-portrait-figure figcaption { margin-top: .9rem; color: var(--ochre); font-family: var(--soft); font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-align: center; }
.story-origin .origin-copy p:not(.eyebrow) { margin-bottom: 1.3rem; }
.story-origin .origin-copy p:last-child { margin-bottom: 0; }
.story-close-inner { max-width: 680px; }
.story-close-inner > p:first-child { color: rgba(24,34,31,.78); font-family: var(--soft); font-size: 1.1rem; line-height: 1.75; }
.story-quote { margin: 1.6rem 0 2.2rem; padding: 1.5rem 1.8rem; border-left: 3px solid var(--gold); border-radius: 0 12px 12px 0; background: var(--cream-deep); color: var(--forest); font-family: var(--soft); font-size: 1.15rem; font-style: italic; line-height: 1.6; }

@media (max-width: 980px) {
  :root { --shell: min(100% - 32px, 780px); }
  .announcement-inner span:last-child { display: none; }
  .announcement-inner { justify-content: center; }
  .menu-toggle { display: flex; align-items: center; gap: .7rem; }
  .site-navigation { position: fixed; inset: 84px 0 auto; display: none; padding: 2rem 1rem 3rem; background: var(--cream); border-bottom: 1px solid var(--line); }
  .site-navigation.is-open { display: block; }
  .site-navigation ul { flex-direction: column; align-items: stretch; gap: 0; }
  .site-navigation li a { display: block; padding: 1rem 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .header-etsy { width: 100%; justify-content: space-between; margin-top: 1.5rem; }
  .brand-hero { min-height: 650px; background-position: 56% center; }
  .brand-hero-shade { background: linear-gradient(90deg, rgba(5,49,39,.93), rgba(5,49,39,.62) 70%, rgba(5,49,39,.2)); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-grid p:nth-child(3) { border-left: 0; border-top: 1px solid rgba(202,168,99,.22); }
  .trust-grid p:nth-child(4) { border-top: 1px solid rgba(202,168,99,.22); }
  .priority-products, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intention-cards { grid-template-columns: repeat(2, 1fr); }
  .intention-card:last-child { grid-column: 1 / -1; width: calc(50% - .6rem); }
  .reviews-grid { grid-template-columns: repeat(2, 1fr); }
  .woocommerce div.product { grid-template-columns: 1fr; }
  .story-hero-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .story-portrait { max-width: 340px; margin-inline: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .header-inner { min-height: 72px; }
  .site-navigation { inset-block-start: 72px; }
  .lunae-logo, .custom-logo { width: 80px; height: 56px; }
  .brand-hero { min-height: 690px; align-items: end; background-position: 59% center; }
  .brand-hero-inner { padding-block: 4.5rem; }
  .brand-hero-shade { background: linear-gradient(0deg, rgba(5,49,39,.97) 0%, rgba(5,49,39,.78) 56%, rgba(5,49,39,.2) 100%); }
  h1 { font-size: clamp(3rem, 13vw, 4.3rem); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .section-heading { grid-template-columns: 1fr; }
  .priority-products, .woocommerce ul.products { gap: 1.8rem .7rem !important; }
  .priority-product h3, .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .88rem !important; }
  .intention-cards { grid-template-columns: 1fr; }
  .intention-card:last-child { grid-column: auto; width: auto; }
  .reviews-grid { grid-template-columns: 1fr; }
  .origin-section { width: calc(100vw - 24px); min-height: 620px; padding: 1.3rem; align-items: end; background-position: 58% center; }
  .origin-section::before { background: linear-gradient(0deg, rgba(5,49,39,.96), rgba(5,49,39,.6) 64%, rgba(5,49,39,.08)); }
  .story-origin { min-height: auto; align-items: center; }
  .etsy-band-inner, .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > :last-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  .lunae-motion-ready .reveal { opacity: 1; transform: none; }
}
