/*
Theme Name: NOCTURNE Private Wellness
Theme URI: https://private-wellness-store.learnwebsite0901.chatgpt.site
Author: NOCTURNE
Description: A Gutenberg-ready WooCommerce theme for a discreet adult wellness store. Includes responsive shopping, age verification, product filters, and editable block layouts.
Version: 1.2.2
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nocturne-wellness
Tags: e-commerce, block-styles, custom-logo, custom-menu, featured-images, full-width-template, one-column, two-columns, translation-ready
*/

:root {
  --paper: #f6f2ed;
  --paper-2: #eee8e2;
  --ink: #181419;
  --plum: #4a2b45;
  --wine: #693a50;
  --gold: #c6a46c;
  --muted: #756d73;
  --line: #d9d0ca;
  --white: #fff;
  --nocturne-width: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.nocturne-lock { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; width: auto; height: auto; padding: 10px 15px; margin: 8px; background: #fff; color: #000; z-index: 99999; }
.page-width, .alignwide { width: min(calc(100% - 80px), var(--nocturne-width)); margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; max-width: none; }
.site-main { min-height: 50vh; }
.site-main > .entry-content { margin: 0; }
.entry-content > *:not(.alignfull):not(.alignwide):not(.nocturne-page-hero) { max-width: var(--nocturne-width); }
.entry-content > .wp-block-group.alignfull { margin-left: 0; margin-right: 0; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }

/* Header */
.announcement { min-height: 30px; padding: 6px 20px; background: var(--ink); color: #eee8e2; display: flex; align-items: center; justify-content: center; gap: 11vw; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.site-header { height: 78px; padding: 0 38px; background: rgba(246,242,237,.97); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 210px 1fr 210px; align-items: center; position: sticky; top: 0; z-index: 90; backdrop-filter: blur(12px); }
.admin-bar .site-header { top: 32px; }
.brand { display: inline-flex; width: max-content; flex-direction: column; align-items: center; color: var(--ink); }
.brand .custom-logo { display: block; max-height: 48px; width: auto; }
.brand-word { font-family: Georgia, "Times New Roman", serif; font-size: 24px; letter-spacing: .26em; line-height: 1; }
.brand small { margin-top: 5px; font-size: 7px; letter-spacing: .34em; color: var(--muted); }
.primary-navigation { justify-self: center; }
.primary-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 31px; }
.primary-navigation a { position: relative; display: block; padding: 30px 0 27px; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.primary-navigation .current-menu-item > a::after, .primary-navigation a:hover::after { content: ""; position: absolute; left: 0; right: 0; bottom: 21px; height: 1px; background: var(--wine); }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; }
.header-icon { position: relative; display: inline-grid; place-items: center; width: 30px; height: 36px; border: 0; background: transparent; cursor: pointer; color: var(--ink); }
.header-icon svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.cart-count { position: absolute; right: -1px; top: 1px; min-width: 16px; height: 16px; padding: 0 4px; display: grid; place-items: center; border-radius: 30px; background: var(--wine); color: #fff; font-size: 8px; font-style: normal; }
.mobile-menu-toggle { display: none; }
/* Shared elements */
.eyebrow { display: block; color: var(--wine); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow.light { color: var(--gold); }
.nocturne-heading, .section-heading h2, .nocturne-section-title { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.nocturne-button .wp-block-button__link, .primary, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wp-element-button { min-height: 46px; padding: 0 24px; border: 0; border-radius: 0; display: inline-flex; align-items: center; justify-content: center; gap: 14px; background: var(--ink); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.nocturne-button .wp-block-button__link:hover, .primary:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--wine); color: #fff; transform: translateY(-1px); }
.view-all { display: inline-flex; align-items: center; gap: 12px; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid var(--ink); padding-bottom: 5px; }
.section-heading { margin-bottom: 38px; display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; }
.section-heading h2 { margin: 8px 0 5px; font-size: 40px; line-height: 1.14; }
.section-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.nocturne-section { padding: 92px 0 100px; }
.breadcrumbs, .woocommerce-breadcrumb { display: flex; align-items: center; gap: 10px; padding: 19px 0; color: var(--muted); font-size: 9px; border-bottom: 1px solid var(--line); }
.breadcrumbs a, .woocommerce-breadcrumb a { color: var(--ink); }

/* Gutenberg home */
.nocturne-home-hero { min-height: min(900px, calc(100svh - 108px)); position: relative; display: flex; align-items: center; overflow: hidden; background: #20181f; color: #fff; }
.nocturne-home-hero .wp-block-cover__image-background { object-position: 50% 50%; }
.nocturne-home-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(18,13,20,.84), rgba(18,13,20,.42) 55%, rgba(18,13,20,.06)) !important; opacity: 1 !important; }
.nocturne-home-hero .wp-block-cover__inner-container { width: min(calc(100% - 80px), var(--nocturne-width)); }
.nocturne-hero-copy { max-width: 650px; }
.nocturne-home-hero h1 { margin: 19px 0 20px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(48px, 5.2vw, 82px); line-height: 1.05; font-weight: 400; letter-spacing: -.02em; }
.nocturne-home-hero p { max-width: 570px; margin: 0; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.8; }
.nocturne-home-hero .wp-block-buttons { margin-top: 32px; gap: 23px; }
.nocturne-home-hero .is-style-outline .wp-block-button__link { background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.7); padding: 0 0 5px; min-height: 0; }
.nocturne-trust-bar { width: min(calc(100% - 80px), var(--nocturne-width)); margin: 0 auto; display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0 !important; }
.nocturne-trust-item { min-height: 112px; padding: 22px 30px !important; border-right: 1px solid var(--line); display: grid !important; grid-template-columns: 42px 1fr; gap: 14px !important; align-items: center; }
.nocturne-trust-item:last-child { border-right: 0; }
.nocturne-trust-item > p:first-child { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--wine); border-radius: 50%; color: var(--wine); font-family: Georgia, serif; }
.nocturne-trust-item p { margin: 0; }
.nocturne-trust-item strong { display: block; font-size: 11px; }
.nocturne-trust-item small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
.nocturne-dark-band { padding: 88px 0 96px; background: var(--ink); color: #fff; }
.nocturne-dark-band .section-heading p { color: rgba(255,255,255,.55); }
.nocturne-scene-grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 1px !important; background: rgba(255,255,255,.13); }
.nocturne-scene-card { min-height: 300px; padding: 30px !important; position: relative; display: flex !important; flex-direction: column; justify-content: space-between; background: #231e24; transition: background .25s ease, transform .25s ease; }
.nocturne-scene-card:hover { background: #322932; transform: translateY(-3px); }
.nocturne-scene-card > p:first-child { margin: 0; color: rgba(255,255,255,.34); font-family: Georgia, serif; font-size: 35px; }
.nocturne-scene-card h3 { margin: 8px 0; font-family: Georgia, serif; font-size: 27px; font-weight: 400; }
.nocturne-scene-card p { color: rgba(255,255,255,.54); font-size: 10px; line-height: 1.65; }
.nocturne-scene-card .wp-block-button__link { padding: 0; min-height: 0; background: none; color: var(--gold); font-size: 8px; }
.nocturne-campaign { width: min(calc(100% - 80px), var(--nocturne-width)); margin: 0 auto 105px; display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 !important; background: var(--plum); color: #fff; }
.nocturne-campaign-art { min-height: 520px; position: relative; overflow: hidden; display: grid; place-items: center; background: radial-gradient(circle at 20% 20%, #7d5872 0 2%, transparent 34%), radial-gradient(circle at 76% 70%, #b58d87 0 4%, transparent 35%), #2a1e29; }
.nocturne-campaign-art::before, .nocturne-campaign-art::after { content: ""; position: absolute; border: 1px solid rgba(198,164,108,.35); border-radius: 50%; width: 380px; height: 380px; }
.nocturne-campaign-art::before { left: -150px; top: -130px; }.nocturne-campaign-art::after { right: -130px; bottom: -160px; }
.nocturne-campaign-art h2 { position: relative; z-index: 1; margin: 0; color: rgba(255,255,255,.8); font-family: Georgia, serif; font-size: 62px; line-height: .9; letter-spacing: .06em; text-align: center; }
.nocturne-campaign-copy { padding: 75px 68px !important; display: flex; flex-direction: column; justify-content: center; }
.nocturne-campaign-copy h2 { margin: 13px 0 20px; font-family: Georgia, serif; font-size: 42px; line-height: 1.15; font-weight: 400; }
.nocturne-campaign-copy > p { color: rgba(255,255,255,.62); font-size: 11px; line-height: 1.75; }
.nocturne-countdown { display: flex; gap: 12px; margin: 29px 0; }
.nocturne-countdown span { width: 68px; padding: 11px 4px; border: 1px solid rgba(255,255,255,.2); display: flex; flex-direction: column; align-items: center; }
.nocturne-countdown b { font-family: Georgia, serif; font-size: 25px; font-weight: 400; }.nocturne-countdown small { margin-top: 4px; color: var(--gold); font-size: 7px; }
.nocturne-reviews { padding: 92px 0 105px; background: #eee8e2; }
.nocturne-review-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 14px !important; }
.nocturne-review-card { min-height: 270px; padding: 31px !important; background: var(--paper); display: flex !important; flex-direction: column; }
.nocturne-review-card h3 { margin: 20px 0 11px; font-family: Georgia, serif; font-size: 20px; font-weight: 400; }
.nocturne-review-card > p { color: var(--muted); font-family: Georgia, serif; font-size: 12px; line-height: 1.8; }
.nocturne-review-card > p:last-child { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); font-family: inherit; font-size: 9px; }
.stars { color: var(--wine); letter-spacing: .12em; }

/* WooCommerce product grids */
.woocommerce ul.products, .woocommerce-page ul.products { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 45px 18px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none; width: auto; margin: 0; padding: 0; }
.woocommerce ul.products li.product.nocturne-product-card, .woocommerce-page ul.products li.product.nocturne-product-card { position: relative; display: flex; flex-direction: column; }
.nocturne-product-media { position: relative; aspect-ratio: 1 / 1.12; display: grid; place-items: center; overflow: hidden; background: #e6ddd8; }
.nocturne-product-media img { width: 100%; height: 100%; margin: 0 !important; object-fit: cover; transition: transform .45s ease; }
.nocturne-product-card:hover .nocturne-product-media img { transform: scale(1.025); }
.nocturne-product-badge { position: absolute; left: 12px; top: 12px; z-index: 2; padding: 7px 9px; background: var(--wine); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.nocturne-heart { position: absolute; right: 12px; top: 12px; z-index: 2; width: 31px; height: 31px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.82); cursor: pointer; }
.nocturne-product-copy { padding-top: 16px; display: flex; flex: 1; flex-direction: column; }
.nocturne-product-copy .eyebrow { min-height: 14px; font-size: 10px; line-height: 1.4; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 0; margin: 8px 0 9px; padding: 0; color: var(--ink); font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; }
.woocommerce ul.products li.product .price { display: inline-flex; flex-wrap: nowrap; align-items: baseline; gap: 7px; margin: 0; color: var(--ink); font-family: Georgia, serif; font-size: 18px; line-height: 1.2; white-space: nowrap; }
.woocommerce ul.products li.product .price ins { order: 1; color: var(--ink); font-weight: 600; text-decoration: none !important; }.woocommerce ul.products li.product .price del { order: 2; color: var(--muted); font-size: 13px; opacity: 1; text-decoration-thickness: 1px; }
.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol { margin-right: 1px; font-family: Arial, sans-serif; font-size: .78em; }
.nocturne-card-bottom { min-height: 40px; margin-top: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 10px; }
.nocturne-card-bottom > div { min-width: 0; flex: 0 1 auto; }
.nocturne-mini-add, .woocommerce ul.products li.product .button.nocturne-mini-add { position: relative; flex: 0 0 40px; width: 40px; min-width: 40px; height: 40px; min-height: 40px; margin: 0; padding: 0; display: grid; place-items: center; border-radius: 50%; font-family: Arial, sans-serif; font-size: 20px; line-height: 1; letter-spacing: 0; }
.nocturne-card-bottom .added_to_cart { display: none !important; }
.woocommerce ul.products li.product .button.nocturne-mini-add.added::after { content: none !important; display: none !important; margin: 0 !important; }
.woocommerce ul.products li.product .button.nocturne-mini-add.added { padding: 0; }
.woocommerce ul.products li.product .button.nocturne-mini-add.loading { padding: 0; font-size: 0; }
.woocommerce ul.products li.product .button.nocturne-mini-add.loading::after { position: static; margin: 0; font-size: 16px; }
.nocturne-sales { display: block; min-height: 15px; margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.woocommerce span.onsale { display: none; }

/* Shop archive and filters */
.nocturne-shop { padding-bottom: 115px; }
.collection-title { padding: 48px 0 38px; display: flex; align-items: flex-end; justify-content: space-between; }
.collection-title h1 { margin: 9px 0 8px; font-family: Georgia, serif; font-size: 50px; line-height: 1.1; font-weight: 400; }.collection-title p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }.collection-title > span { color: var(--muted); font-size: 12px; }
.collection-title .eyebrow { font-size: 12px; }
.nocturne-shop > .woocommerce-breadcrumb { font-size: 12px; }
.quick-tags { min-height: 70px; padding: 13px 0; display: flex; align-items: center; gap: 10px; border-block: 1px solid var(--line); overflow-x: auto; }.quick-tags > span { margin-right: 8px; font-size: 12px; font-weight: 700; white-space: nowrap; }.quick-tags a { min-height: 40px; padding: 0 17px; border: 1px solid var(--line); background: #fff; display: inline-flex; align-items: center; font-size: 12px; white-space: nowrap; }
.collection-layout { display: grid; grid-template-columns: 245px 1fr; gap: 48px; padding-top: 45px; align-items: start; }
.mobile-filter-toggle { display: none; }
.shop-filters { position: sticky; top: 108px; }
.admin-bar .shop-filters { top: 140px; }
.filter-title { display: flex; justify-content: space-between; align-items: center; padding: 0 0 16px; border-bottom: 1px solid var(--ink); }.filter-title strong { font-family: Georgia, serif; font-size: 24px; font-weight: 400; }.filter-title a { color: var(--muted); font-size: 12px; text-decoration: underline; }
.filter-group { padding: 24px 0; border-bottom: 1px solid var(--line); }.filter-group h3 { margin: 0 0 15px; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }.filter-group label { min-height: 34px; padding: 6px 0; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; line-height: 1.35; cursor: pointer; }.filter-group input { width: 16px; height: 16px; flex: 0 0 16px; accent-color: var(--wine); }.filter-submit { width: 100%; margin-top: 18px; }
.shop-results { min-width: 0; position: relative; }.sort-row { min-height: 46px; margin-bottom: 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 12px; line-height: 1.4; }.sort-row .woocommerce-ordering { margin: 0; }.sort-row select { min-width: 180px; min-height: 40px; padding: 8px 34px 8px 12px; border: 1px solid var(--line); background: var(--paper); font-size: 12px; }
.woocommerce .nocturne-shop .collection-layout .shop-results ul.products { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 48px 20px; }
.woocommerce-pagination { margin-top: 55px; }.woocommerce nav.woocommerce-pagination ul { border: 0; }.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 3px; }.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 35px; padding: 10px; border: 1px solid var(--line); }.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; }
.shop-loading { position: absolute; inset: 45px 0 0; z-index: 5; display: none; grid-template-columns: repeat(3,1fr); gap: 14px; background: var(--paper); }.is-filtering .shop-loading { display: grid; }.shop-loading i { display: block; height: 330px; background: linear-gradient(90deg,#e8e1dc 25%,#f2ede9 50%,#e8e1dc 75%); background-size: 200% 100%; animation: nocturneShimmer 1.2s infinite; }
@keyframes nocturneShimmer { to { background-position: -200% 0; } }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top-color: var(--wine); background: #eee8e2; color: var(--ink); }.woocommerce-info::before, .woocommerce-message::before { color: var(--wine); }
.nocturne-empty { padding: 80px 25px; background: var(--paper-2); text-align: center; }.nocturne-empty h2 { font-family: Georgia, serif; font-weight: 400; }
.hot-strip { margin-top: 100px; padding-top: 75px; border-top: 1px solid var(--line); }

/* Product detail */
.single-product .site-main { padding-bottom: 90px; }
.single-product div.product { width: min(calc(100% - 80px), var(--nocturne-width)); margin: 0 auto; padding: 55px 0 0; display: grid; grid-template-columns: 1.08fr .92fr; gap: 76px; }
.single-product div.product .woocommerce-product-gallery { float: none; width: auto; margin: 0; }
.woocommerce-product-gallery__wrapper { margin: 0; }.woocommerce-product-gallery__image { background: #e7ded9; }.woocommerce-product-gallery__image a { display: block; }.woocommerce-product-gallery__image img { width: 100%; }
.woocommerce-product-gallery .flex-control-thumbs { margin-top: 10px !important; display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; }.woocommerce-product-gallery .flex-control-thumbs li { float: none !important; width: auto !important; }.woocommerce-product-gallery .flex-control-thumbs img { border: 1px solid transparent; opacity: .68; }.woocommerce-product-gallery .flex-control-thumbs img.flex-active { border-color: var(--wine); opacity: 1; }
.single-product div.product .summary { float: none; width: auto; margin: 0; padding: 18px 0 0; }
.single-product div.product .product_title { margin: 10px 0 13px; font-family: Georgia, serif; font-size: 44px; line-height: 1.12; font-weight: 400; }
.woocommerce-product-rating { font-size: 10px; }.woocommerce .star-rating { color: var(--wine); }
.single-product div.product p.price { margin: 22px 0; color: var(--ink); font-family: Georgia, serif; font-size: 30px; }.single-product div.product p.price del { color: var(--muted); font-size: 17px; }.single-product div.product p.price ins { text-decoration: none; }
.woocommerce-product-details__short-description { color: var(--muted); font-size: 12px; line-height: 1.85; }
.nocturne-detail-points { margin: 26px 0; padding: 15px 0; display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid var(--line); text-align: center; }.nocturne-detail-points span { padding: 7px; border-right: 1px solid var(--line); font-size: 8px; }.nocturne-detail-points span:last-child { border: 0; }.nocturne-detail-points b { display: block; margin-bottom: 4px; color: var(--wine); font-size: 15px; }
.single-product form.cart { margin: 25px 0 !important; display: flex; gap: 10px; }.single-product form.cart .quantity input { height: 48px; border: 1px solid var(--line); background: transparent; }.single-product form.cart .single_add_to_cart_button { flex: 1; min-height: 48px; background: var(--ink); }
.product_meta { color: var(--muted); font-size: 9px; line-height: 1.8; }.product_meta a { text-decoration: underline; }
.nocturne-single-privacy { margin-top: 25px; padding: 17px; border: 1px solid rgba(105,58,80,.2); color: var(--wine); font-size: 9px; line-height: 1.6; }
.woocommerce-tabs { grid-column: 1 / -1; padding-top: 75px; }.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--line); }.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; border-radius: 0; background: none; margin: 0 30px 0 0; padding: 0; }.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 15px 0; font-size: 10px; text-transform: uppercase; }.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wine); border-bottom: 1px solid var(--wine); }.woocommerce-Tabs-panel { padding: 25px 0; color: var(--muted); font-size: 12px; line-height: 1.85; }
.related.products { grid-column: 1 / -1; padding-top: 70px; }.related.products > h2 { margin-bottom: 32px; font-family: Georgia, serif; font-size: 35px; font-weight: 400; }
.nocturne-mobile-buy { display: none; }

/* Page blocks */
.nocturne-page-hero { min-height: 350px; padding: 55px 25px; background: linear-gradient(120deg,#181319,#493149); color: #fff; display: flex; align-items: center; justify-content: center; text-align: center; position: relative; overflow: hidden; }.nocturne-page-hero::before,.nocturne-page-hero::after { content:""; position:absolute; width:400px; height:400px; border:1px solid rgba(198,164,108,.2); border-radius:50%; }.nocturne-page-hero::before { left:-170px; top:-230px; }.nocturne-page-hero::after { right:-140px; bottom:-290px; }.nocturne-page-hero .wp-block-group__inner-container { position: relative; z-index: 1; }.nocturne-page-hero h1 { margin: 15px 0 10px; font-family: Georgia,serif; font-size: 47px; font-weight: 400; }.nocturne-page-hero p { color:rgba(255,255,255,.62); font-size:12px; }
.nocturne-faq-layout { width:min(calc(100% - 80px),1100px); margin:0 auto; padding:90px 0 120px; display:grid !important; grid-template-columns:245px 1fr; gap:80px !important; }.nocturne-faq-nav { border-top:1px solid var(--line); }.nocturne-faq-nav a { display:flex; justify-content:space-between; padding:17px 8px; border-bottom:1px solid var(--line); font-size:11px; }.nocturne-faq-main h2 { margin:12px 0 30px; font-family:Georgia,serif; font-size:35px; font-weight:400; }.nocturne-faq-main details { margin:0; padding:0; border-top:1px solid var(--line); }.nocturne-faq-main details:last-child { border-bottom:1px solid var(--line); }.nocturne-faq-main summary { padding:24px 6px; font-size:13px; font-weight:600; cursor:pointer; }.nocturne-faq-main details p { margin:0 40px 23px 6px; color:var(--muted); font-size:12px; line-height:1.85; }
.nocturne-contact-layout { width:min(calc(100% - 80px),1200px); margin:0 auto; padding:100px 0 120px; display:grid !important; grid-template-columns:1fr .9fr; gap:110px !important; }.nocturne-contact-layout h2 { margin:12px 0; font-family:Georgia,serif; font-size:36px; line-height:1.4; font-weight:400; }.nocturne-contact-layout p { color:var(--muted); font-size:12px; line-height:1.8; }.nocturne-contact-cards { margin-top:35px; display:grid !important; grid-template-columns:1fr 1fr; gap:12px !important; }.nocturne-contact-card { padding:23px !important; background:#eee8e2; }.nocturne-contact-card p { margin:5px 0; }.nocturne-contact-form { padding:38px; background:#fff; border:1px solid var(--line); }.nocturne-contact-form label { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; font-size:10px; font-weight:600; }.nocturne-contact-form input,.nocturne-contact-form select,.nocturne-contact-form textarea { width:100%; padding:12px 13px; border:1px solid var(--line); background:var(--paper); }.nocturne-contact-form .consent { display:flex; flex-direction:row; align-items:flex-start; font-weight:400; color:var(--muted); }.nocturne-contact-form .consent input { width:auto; margin-top:2px; }.nocturne-form-status { margin-bottom:18px; padding:12px; background:#e5eee7; color:#245d35; font-size:11px; }
.nocturne-policy { width:min(calc(100% - 40px),900px); margin:0 auto; padding:85px 0 110px; }.nocturne-policy h2 { margin-top:50px; font-family:Georgia,serif; font-weight:400; }.nocturne-policy p,.nocturne-policy li { color:var(--muted); font-size:12px; line-height:1.9; }.nocturne-settings-list { border-top:1px solid var(--line); }.nocturne-setting { padding:20px 5px !important; border-bottom:1px solid var(--line); display:grid !important; grid-template-columns:1fr auto; gap:25px !important; align-items:center; }.nocturne-setting p { margin:0; }.nocturne-toggle-wrap .wp-block-button__link { width:44px; min-width:44px; height:24px; min-height:24px; padding:3px; border:0; border-radius:20px; background:#c7c1c4; color:transparent; font-size:0; cursor:pointer; }.nocturne-toggle-wrap .wp-block-button__link::before { content:""; display:block; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s; }.nocturne-toggle-wrap .wp-block-button__link.is-on,.nocturne-toggle-wrap.is-locked .wp-block-button__link { background:var(--wine); }.nocturne-toggle-wrap .wp-block-button__link.is-on::before,.nocturne-toggle-wrap.is-locked .wp-block-button__link::before { transform:translateX(20px); }.nocturne-toggle-wrap.is-locked .wp-block-button__link { cursor:not-allowed; }

/* Cart, checkout and account */
.woocommerce-cart .site-main,.woocommerce-checkout .site-main,.woocommerce-account .site-main { width:min(calc(100% - 80px),1200px); margin:0 auto; padding:70px 0 120px; }.woocommerce-cart h1,.woocommerce-checkout h1,.woocommerce-account h1,.page-title { font-family:Georgia,serif; font-size:44px; font-weight:400; }
.woocommerce table.shop_table { border:0; border-radius:0; border-collapse:collapse; }.woocommerce table.shop_table th,.woocommerce table.shop_table td { padding:18px 12px; border-top:1px solid var(--line); }.woocommerce table.shop_table img { width:100px; background:#e7ded9; }.woocommerce a.remove { color:var(--wine)!important; }
.woocommerce-cart .cart-collaterals .cart_totals { width:38%; padding:30px; background:#eee8e2; }.woocommerce-cart .cart-collaterals h2 { font-family:Georgia,serif; font-weight:400; }.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { background:var(--ink); }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.select2-container--default .select2-selection--single { padding:12px; border:1px solid var(--line); border-radius:0; background:#fff; min-height:44px; }.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register { border:1px solid var(--line); border-radius:0; }
.woocommerce-checkout #customer_details { width:58%; float:left; }.woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review { width:38%; float:right; }.woocommerce-checkout #order_review { padding:25px; background:#eee8e2; }.woocommerce-checkout #payment { background:#e3ddd8; border-radius:0; }.woocommerce-checkout #payment div.payment_box { background:#d5cdc7; }.woocommerce-checkout #payment div.payment_box::before { border-bottom-color:#d5cdc7; }
.woocommerce-account .woocommerce-MyAccount-navigation { width:24%; }.woocommerce-account .woocommerce-MyAccount-navigation ul { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }.woocommerce-account .woocommerce-MyAccount-navigation a { display:block; padding:15px 8px; border-bottom:1px solid var(--line); font-size:11px; }.woocommerce-account .is-active a { color:var(--wine); font-weight:700; }.woocommerce-account .woocommerce-MyAccount-content { width:70%; }
.woocommerce-order-received .woocommerce-order { padding:40px; background:#eee8e2; }.woocommerce-order-received .woocommerce-notice--success { font-family:Georgia,serif; font-size:26px; text-align:center; }

/* Footer */
.site-footer { background:var(--ink); color:#fff; }.newsletter { width:min(calc(100% - 80px),var(--nocturne-width)); margin:0 auto; padding:62px 0; border-bottom:1px solid rgba(255,255,255,.13); display:flex; align-items:center; justify-content:space-between; gap:40px; }.newsletter h2 { margin:10px 0 7px; font-family:Georgia,serif; font-size:28px; font-weight:400; }.newsletter p { margin:0; color:rgba(255,255,255,.5); font-size:10px; }.newsletter form { width:min(100%,440px); display:grid; grid-template-columns:1fr auto; }.newsletter input { min-width:0; padding:0 15px; border:1px solid rgba(255,255,255,.25); border-right:0; background:transparent; color:#fff; }.newsletter button { padding:0 24px; border:0; background:var(--gold); color:var(--ink); font-size:9px; font-weight:700; text-transform:uppercase; }
.footer-grid { width:min(calc(100% - 80px),var(--nocturne-width)); margin:0 auto; padding:65px 0 70px; display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:75px; }.footer-brand .brand-word { font-size:25px; }.footer-brand > p { max-width:310px; color:rgba(255,255,255,.5); font-size:10px; line-height:1.8; }.payments { margin-top:25px; display:flex; gap:8px; }.payments span { padding:6px 8px; border:1px solid rgba(255,255,255,.2); font-size:7px; }.footer-column h3 { margin:0 0 18px; color:var(--gold); font-size:9px; letter-spacing:.15em; text-transform:uppercase; }.footer-column ul { list-style:none; margin:0; padding:0; }.footer-column a { display:block; padding:6px 0; color:rgba(255,255,255,.62); font-size:9px; }.footer-column a:hover { color:#fff; }
.footer-bottom { min-height:54px; padding:12px 0; width:min(calc(100% - 80px),var(--nocturne-width)); margin:0 auto; border-top:1px solid rgba(255,255,255,.12); display:flex; align-items:center; justify-content:space-between; color:rgba(255,255,255,.35); font-size:8px; }
.floating-top,.floating-cart { position:fixed; right:20px; z-index:75; width:43px; height:43px; display:grid; place-items:center; border:1px solid rgba(24,20,25,.18); border-radius:50%; background:rgba(246,242,237,.94); color:var(--ink); box-shadow:0 8px 25px rgba(0,0,0,.1); cursor:pointer; }.floating-top { bottom:78px; opacity:0; pointer-events:none; transition:opacity .2s; }.floating-top.is-visible { opacity:1; pointer-events:auto; }.floating-cart { bottom:25px; }.floating-cart .cart-count { right:-3px; top:-3px; }

/* Age gate */
.age-gate { position:fixed; inset:0; z-index:99999; display:none; place-items:center; padding:20px; background:rgba(12,9,13,.92); backdrop-filter:blur(10px); }.age-gate.is-visible { display:grid; }.age-panel { width:min(100%,520px); min-height:560px; padding:56px 58px 45px; border:1px solid rgba(198,164,108,.35); background:linear-gradient(150deg,#261e26,#171218); color:#fff; text-align:center; position:relative; }.age-panel::before { content:""; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.08); pointer-events:none; }.age-number { width:96px; height:96px; margin:0 auto 26px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-family:Georgia,serif; font-size:38px; }.age-panel .brand-word { display:block; margin-bottom:33px; font-size:22px; }.age-panel h2 { margin:0 0 15px; font-family:Georgia,serif; font-size:31px; font-weight:400; }.age-panel p { color:rgba(255,255,255,.58); font-size:11px; line-height:1.8; }.age-actions { margin-top:28px; display:grid; gap:10px; }.age-actions button,.age-actions a { min-height:46px; display:grid; place-items:center; border:1px solid var(--gold); background:var(--gold); color:var(--ink); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }.age-actions a { background:transparent; color:rgba(255,255,255,.65); border-color:rgba(255,255,255,.2); }.age-panel small { display:block; margin-top:19px; color:rgba(255,255,255,.34); font-size:7px; line-height:1.5; }

@media (max-width:1120px) {
  .page-width,.alignwide,.nocturne-trust-bar,.nocturne-campaign { width:min(calc(100% - 44px),var(--nocturne-width)); }
  .site-header { grid-template-columns:190px 1fr 150px; padding:0 24px; }.primary-navigation ul { gap:19px; }
  .woocommerce ul.products,.woocommerce-page ul.products { grid-template-columns:repeat(2,1fr); row-gap:48px; }
	  .woocommerce .nocturne-shop .collection-layout .shop-results ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }.nocturne-scene-grid { grid-template-columns:repeat(2,1fr); }.nocturne-scene-card { min-height:260px; }.nocturne-review-grid { grid-template-columns:repeat(3,1fr); }
  .single-product div.product { width:min(calc(100% - 44px),var(--nocturne-width)); gap:40px; }.nocturne-contact-layout { gap:55px!important; }.footer-grid { gap:35px; }
}
@media (max-width:900px) {
	.site-header { height:68px; padding:0 20px; grid-template-columns:38px 1fr auto; }
	.mobile-menu-toggle { display:grid; justify-self:start; }
	.brand { justify-self:center; }
	.brand-word { font-size:19px; }
	.brand small { display:none; }
	.primary-navigation { display:none; position:absolute; left:0; right:0; top:68px; padding:15px 24px 25px; background:var(--paper); border-bottom:1px solid var(--line); }
	.primary-navigation.is-open { display:block; }
	.primary-navigation ul { flex-direction:column; align-items:stretch; gap:0; }
	.primary-navigation a { padding:13px 0; border-bottom:1px solid var(--line); }
	.primary-navigation a::after { display:none; }
	.collection-layout { grid-template-columns:1fr; gap:22px; padding-top:28px; }
	.mobile-filter-toggle { width:100%; min-height:48px; padding:0 17px; border:1px solid var(--ink); background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
	.mobile-filter-toggle span { font-size:22px; font-weight:400; line-height:1; }
	.shop-filters { position:static; display:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; }
	.shop-filters.is-open { display:grid; }
	.filter-title { grid-column:1/-1; padding:12px 0; }
	.filter-group { padding:18px; border:1px solid var(--line); background:#fff; }
	.filter-submit { grid-column:1/-1; margin-top:0; }
	.sort-row { align-items:center; }
}
@media (max-width:782px) { .admin-bar .site-header { top:46px; } }
@media (max-width:760px) {
  .page-width,.alignwide { width:calc(100% - 30px); }.announcement { min-height:28px; padding:5px 10px; justify-content:space-around; gap:0; font-size:7px; }.announcement span:nth-child(3) { display:none; }
	  .site-header { height:64px; padding:0 15px; grid-template-columns:35px 1fr auto; }.mobile-menu-toggle { display:grid; justify-self:start; }.brand { justify-self:center; }.brand-word { font-size:17px; }.brand small { display:none; }.primary-navigation { display:none; position:absolute; left:0; right:0; top:64px; padding:15px 22px 25px; background:var(--paper); border-bottom:1px solid var(--line); }.primary-navigation.is-open { display:block; }.primary-navigation ul { flex-direction:column; align-items:stretch; gap:0; }.primary-navigation a { padding:13px 0; border-bottom:1px solid var(--line); }.primary-navigation a::after { display:none; }.header-actions { gap:5px; }
  .nocturne-home-hero { min-height:600px; height:calc(100svh - 92px); align-items:flex-end; }.nocturne-home-hero .wp-block-cover__image-background { object-position:64% 50%; }.nocturne-home-hero .wp-block-cover__background { background:linear-gradient(180deg,rgba(15,11,17,.22),rgba(15,11,17,.9) 72%)!important; }.nocturne-home-hero .wp-block-cover__inner-container { width:calc(100% - 34px); padding-bottom:66px; }.nocturne-home-hero h1 { font-size:42px; line-height:1.15; }.nocturne-home-hero p { font-size:11px; }.nocturne-home-hero .wp-block-buttons { gap:14px; }
  .nocturne-trust-bar { width:calc(100% - 30px); grid-template-columns:1fr 1fr; }.nocturne-trust-item { min-height:78px; padding:10px 12px!important; grid-template-columns:32px 1fr; }.nocturne-trust-item:nth-child(2) { border-right:0; }.nocturne-trust-item > p:first-child { width:31px; height:31px; }.nocturne-trust-item strong { font-size:10px; }.nocturne-trust-item small { font-size:7px; }
	  .nocturne-section { padding:72px 0 76px; }.section-heading { margin-bottom:27px; }.section-heading h2 { font-size:31px; }.section-heading p { font-size:11px; }.woocommerce ul.products,.woocommerce-page ul.products,.woocommerce .nocturne-shop .collection-layout .shop-results ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 12px; }.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height:0; font-size:14px; line-height:1.5; }.woocommerce ul.products li.product .price { font-size:16px; }.woocommerce ul.products li.product .price del { font-size:12px; }.nocturne-product-media { aspect-ratio:1/1.1; }.nocturne-product-copy .eyebrow { font-size:9px; }.nocturne-card-bottom { gap:8px; }.nocturne-mini-add,.woocommerce ul.products li.product .button.nocturne-mini-add { flex-basis:38px; width:38px; min-width:38px; height:38px; min-height:38px; }.nocturne-sales { font-size:10px; }
  .nocturne-dark-band { padding:72px 0; }.nocturne-scene-grid { grid-template-columns:1fr 1fr; }.nocturne-scene-card { min-height:220px; padding:18px!important; }.nocturne-scene-card h3 { font-size:21px; }.nocturne-campaign { width:100%; grid-template-columns:1fr; margin-bottom:72px; }.nocturne-campaign-art { min-height:330px; }.nocturne-campaign-art h2 { font-size:48px; }.nocturne-campaign-copy { padding:50px 25px!important; }.nocturne-campaign-copy h2 { font-size:31px; }.nocturne-review-grid { grid-template-columns:1fr; }.nocturne-review-card { min-height:240px; }
	  .collection-title { padding:34px 0; align-items:flex-start; }.collection-title h1 { font-size:38px; }.collection-title p { font-size:14px; }.collection-title > span { display:none; }.quick-tags > span,.quick-tags a { font-size:12px; }.sort-row { align-items:center; font-size:12px; }.sort-row select { min-width:145px; font-size:12px; }.shop-loading { grid-template-columns:1fr 1fr; }
  .single-product div.product { width:calc(100% - 30px); padding-top:25px; grid-template-columns:1fr; gap:28px; }.single-product div.product .product_title { font-size:31px; }.nocturne-detail-points { grid-template-columns:1fr 1fr; }.woocommerce-tabs,.related.products { grid-column:auto; padding-top:45px; }.nocturne-mobile-buy { position:fixed; left:0; right:0; bottom:0; z-index:80; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:72px 1fr; gap:8px; background:#fff; box-shadow:0 -6px 24px rgba(0,0,0,.12); }.nocturne-mobile-buy a { min-height:46px; }.nocturne-mobile-buy .mobile-wish { display:grid; place-items:center; border:0; background:none; font-size:9px; }.floating-cart { display:none; }
  .nocturne-page-hero { min-height:290px; }.nocturne-page-hero h1 { font-size:35px; }.nocturne-faq-layout { width:calc(100% - 30px); padding:60px 0 80px; grid-template-columns:1fr; gap:35px!important; }.nocturne-faq-nav { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; border:0; }.nocturne-faq-nav a { padding:11px; border:1px solid var(--line); }.nocturne-faq-main h2 { font-size:29px; }.nocturne-contact-layout { width:calc(100% - 30px); padding:65px 0 80px; grid-template-columns:1fr; gap:35px!important; }.nocturne-contact-layout h2 { font-size:29px; }.nocturne-contact-cards { grid-template-columns:1fr; }.nocturne-contact-form { padding:25px 20px; }
  .woocommerce-cart .site-main,.woocommerce-checkout .site-main,.woocommerce-account .site-main { width:calc(100% - 30px); padding:48px 0 85px; }.woocommerce-cart .cart-collaterals .cart_totals,.woocommerce-checkout #customer_details,.woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review,.woocommerce-account .woocommerce-MyAccount-navigation,.woocommerce-account .woocommerce-MyAccount-content { float:none; width:100%; }.woocommerce table.shop_table_responsive tr td::before { font-size:9px; }.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom:30px; }
  .newsletter { width:calc(100% - 30px); flex-direction:column; align-items:flex-start; gap:25px; }.newsletter form { width:100%; }.footer-grid { width:calc(100% - 30px); grid-template-columns:1fr 1fr; gap:42px 22px; }.footer-brand { grid-column:1/-1; }.footer-bottom { width:calc(100% - 30px); flex-direction:column; align-items:flex-start; justify-content:center; gap:5px; }.floating-top { display:none; }.age-panel { min-height:530px; padding:45px 29px 35px; }.age-panel h2 { font-size:25px; }.age-number { width:82px; height:82px; }
}
@media (max-width:600px) {
	.shop-filters { grid-template-columns:1fr; }
	.filter-title,.filter-submit { grid-column:auto; }
	.quick-tags { margin-left:-15px; margin-right:-15px; padding-left:15px; padding-right:15px; }
}
