/*
Theme Name: BeNoam Theme
Theme URI: https://example.com/benoam-theme
Author: B'Noam
Description: ערכת עיצוב יוקרתית בעברית (RTL) למותג בנועם — רקע קרם/קלף, לוגו בהטבעת זהב, עלי זהב דקים, אבקת זהב ומסגרות זהב עדינות. כוללת תמיכה מלאה ב-WooCommerce ושדה הקדשה אישית למוצרים.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
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: benoam
Tags: rtl-language-support, e-commerce, custom-menu, custom-logo, featured-images, translation-ready
WC requires at least: 7.0
*/

/* ==========================================================================
   1. Brand tokens
   ========================================================================== */
:root {
	--cream: #f5efe6;
	--cream-deep: #ece3d4;
	--parchment: #faf6ef;
	--gold: #b8922a;
	--gold-foil: #c9a84c;
	--gold-light: #d4af5a;
	--ink: #2a1f0e;
	--ink-soft: #5a4a33;
	--night: #1a1208;

	--foil-gradient: linear-gradient(135deg, #8a6a1c 0%, var(--gold-foil) 22%, #f3dc94 40%, var(--gold-light) 52%, var(--gold) 70%, #e8cf82 86%, #8a6a1c 100%);
	--hairline: 1px solid rgba(184, 146, 42, 0.45);
	--hairline-strong: 1px solid var(--gold);

	--font-heading: "Frank Ruhl Libre", "Noto Serif Hebrew", serif;
	--font-body: "Noto Serif Hebrew", "Frank Ruhl Libre", serif;
	--font-latin: "Cormorant Garamond", Georgia, serif;

	--container: 1180px;
	--radius: 2px;
	--shadow-soft: 0 10px 30px -18px rgba(42, 31, 14, 0.35);
	--header-h: 84px;
}

/* ==========================================================================
   2. Base / reset
   ========================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	direction: rtl;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	direction: rtl;
	text-align: right;
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.8;
	color: var(--ink);
	background-color: var(--cream);
	background-image:
		radial-gradient(ellipse at 15% 10%, rgba(255, 255, 255, 0.55) 0%, transparent 55%),
		radial-gradient(ellipse at 85% 90%, rgba(212, 175, 90, 0.10) 0%, transparent 60%);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 500;
	line-height: 1.3;
	color: var(--ink);
	margin: 0 0 0.6em;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.6rem); }
h3 { font-size: 1.35rem; }

p { margin: 0 0 1.2em; }

a { color: var(--gold); text-decoration: none; transition: color .25s ease; }
a:hover, a:focus { color: var(--ink); }

img { max-width: 100%; height: auto; display: block; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.screen-reader-text:focus {
	clip: auto; width: auto; height: auto;
	top: 8px; right: 8px; z-index: 1000;
	padding: 10px 16px; background: var(--parchment); color: var(--ink);
}

:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}

.latin,
.caption-en {
	font-family: var(--font-latin);
	font-style: italic;
	letter-spacing: 0.08em;
	direction: ltr;
	unicode-bidi: isolate;
}

.gold-foil {
	background: var(--foil-gradient);
	background-size: 200% 200%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	animation: foil-shimmer 9s ease-in-out infinite;
}
@keyframes foil-shimmer {
	0%, 100% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
}

/* Thin gold ornament divider */
.ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 0 auto 1.4em;
	color: var(--gold);
}
.ornament::before,
.ornament::after {
	content: "";
	height: 1px;
	width: 70px;
	background: linear-gradient(to left, transparent, var(--gold), transparent);
}
.ornament span {
	width: 7px; height: 7px;
	transform: rotate(45deg);
	border: 1px solid var(--gold);
}

/* ==========================================================================
   3. Buttons
   ========================================================================== */
.btn,
.button,
button,
input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: 1rem;
	letter-spacing: 0.04em;
	padding: 12px 30px;
	border: var(--hairline-strong);
	border-radius: var(--radius);
	background: transparent;
	color: var(--ink);
	cursor: pointer;
	transition: background .3s ease, color .3s ease, box-shadow .3s ease;
	text-decoration: none;
	line-height: 1.4;
}
.btn:hover,
.button:hover,
button:hover,
input[type="submit"]:hover {
	background: var(--gold);
	color: var(--parchment);
	box-shadow: 0 6px 20px -10px rgba(184, 146, 42, 0.8);
}

.btn-gold {
	background: var(--foil-gradient);
	background-size: 200% 200%;
	color: var(--ink);
	border-color: var(--gold);
}
.btn-gold:hover { background-position: 100% 50%; color: var(--ink); }

.btn-dark { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.btn-dark:hover { background: var(--gold); border-color: var(--gold); }

/* ==========================================================================
   4. Header / navigation
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	height: var(--header-h);
	background: rgba(245, 239, 230, 0.92);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: var(--hairline);
	transition: box-shadow .3s ease, background .3s ease;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.site-header.is-scrolled { box-shadow: var(--shadow-soft); background: rgba(250, 246, 239, 0.97); }

.header-inner {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
	text-decoration: none;
}
.brand-he {
	font-family: var(--font-heading);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.brand-en {
	font-family: var(--font-latin);
	font-size: 0.82rem;
	letter-spacing: 0.38em;
	text-transform: uppercase;
	color: var(--gold);
	margin-top: 4px;
	direction: ltr;
}
.brand .custom-logo { max-height: 60px; width: auto; }

.main-nav { flex: 1; display: flex; justify-content: center; }
.main-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 34px;
}
.main-nav li { position: relative; }
.main-nav a {
	font-family: var(--font-heading);
	color: var(--ink);
	font-size: 1.02rem;
	padding: 6px 0;
	position: relative;
}
.main-nav a::after {
	content: "";
	position: absolute;
	right: 0; bottom: 0;
	width: 0; height: 1px;
	background: var(--gold);
	transition: width .3s ease;
}
.main-nav a:hover::after,
.main-nav .current-menu-item > a::after { width: 100%; }

.main-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	min-width: 200px;
	flex-direction: column;
	gap: 0;
	padding: 10px 0;
	background: var(--parchment);
	border: var(--hairline);
	box-shadow: var(--shadow-soft);
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu { display: flex; }
.main-nav .sub-menu a { display: block; padding: 6px 18px; }

.header-actions { display: flex; align-items: center; gap: 16px; }
.header-cart {
	position: relative;
	color: var(--ink);
	display: inline-flex;
}
.header-cart svg { width: 24px; height: 24px; stroke: currentColor; }
.header-cart .count {
	position: absolute;
	top: -6px; left: -8px;
	min-width: 18px; height: 18px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--gold);
	color: var(--parchment);
	font-size: 11px;
	line-height: 18px;
	text-align: center;
	font-family: var(--font-latin);
}
.btn-shop { padding: 9px 24px; }

.nav-toggle {
	display: none;
	padding: 8px;
	border: none;
	background: none;
}
.nav-toggle:hover { background: none; box-shadow: none; }
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
	display: block;
	width: 24px; height: 1px;
	background: var(--ink);
	position: relative;
	transition: transform .3s ease, background .3s ease;
}
.nav-toggle span::before,
.nav-toggle span::after { content: ""; position: absolute; right: 0; }
.nav-toggle span::before { top: -7px; }
.nav-toggle span::after { top: 7px; }
.nav-open .nav-toggle span { background: transparent; }
.nav-open .nav-toggle span::before { transform: translateY(7px) rotate(45deg); }
.nav-open .nav-toggle span::after { transform: translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   5. Decorative: leaves & gold dust
   ========================================================================== */
.gold-leaf {
	position: absolute;
	pointer-events: none;
	color: var(--gold-foil);
	opacity: 0.85;
}
.gold-leaf path,
.gold-leaf ellipse { vector-effect: non-scaling-stroke; }

.gold-dust {
	position: absolute;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
}
.gold-dust i {
	position: absolute;
	border-radius: 50%;
	background: radial-gradient(circle, #f6e3a6 0%, var(--gold-light) 45%, transparent 75%);
	opacity: 0;
	animation: dust-twinkle 6s ease-in-out infinite;
}
@keyframes dust-twinkle {
	0%, 100% { opacity: 0; transform: translateY(0) scale(.6); }
	40% { opacity: .9; }
	60% { opacity: .7; transform: translateY(-10px) scale(1); }
}

/* ==========================================================================
   6. Sections (front page)
   ========================================================================== */
.section { padding: 110px 0; position: relative; }
.section-head { text-align: center; max-width: 680px; margin: 0 auto 60px; }
.section-head .caption-en {
	display: block;
	color: var(--gold);
	font-size: 1.05rem;
	margin-bottom: 6px;
}
.section-head p { color: var(--ink-soft); }

.section-alt {
	background: var(--parchment);
	border-top: var(--hairline);
	border-bottom: var(--hairline);
}

/* Hero */
.hero {
	position: relative;
	min-height: calc(100vh - var(--header-h));
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow: hidden;
	padding: 90px 0;
}
.hero::before {
	content: "";
	position: absolute;
	inset: 28px;
	border: var(--hairline);
	pointer-events: none;
}
.hero::after {
	content: "";
	position: absolute;
	inset: 36px;
	border: 1px solid rgba(184, 146, 42, 0.18);
	pointer-events: none;
}
.hero-content { position: relative; z-index: 2; max-width: 760px; padding: 0 24px; }
.hero-eyebrow {
	font-family: var(--font-latin);
	font-style: italic;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--gold);
	font-size: 0.95rem;
	display: block;
	margin-bottom: 18px;
	direction: ltr;
}
.hero-title {
	font-size: clamp(3rem, 9vw, 6.4rem);
	font-weight: 700;
	line-height: 1.1;
	margin-bottom: 0.25em;
}
.hero-tagline-he {
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 3.4vw, 2.1rem);
	color: var(--ink);
	margin-bottom: .5em;
}
.hero-sub {
	font-size: clamp(1.1rem, 2.2vw, 1.35rem);
	color: var(--ink-soft);
	margin-bottom: 2.2em;
}
.hero-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.hero .leaf-right { top: 8%; right: 4%; width: min(240px, 30vw); transform: rotate(-12deg); }
.hero .leaf-left { bottom: 6%; left: 4%; width: min(260px, 32vw); transform: scaleX(-1) rotate(-160deg); }
.hero .leaf-top { top: 12%; left: 12%; width: 120px; opacity: .5; transform: rotate(40deg); }

/* Story */
.story-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 70px;
	align-items: center;
}
.story-frame {
	position: relative;
	aspect-ratio: 4 / 5;
	border: var(--hairline-strong);
	padding: 14px;
	background: var(--parchment);
}
.story-frame::before {
	content: "";
	position: absolute;
	inset: -10px 10px 10px -10px;
	border: var(--hairline);
	z-index: -1;
}
.story-frame-inner {
	height: 100%;
	background:
		linear-gradient(160deg, rgba(212, 175, 90, .18), transparent 60%),
		var(--cream-deep);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.story-frame-inner img { width: 100%; height: 100%; object-fit: cover; }
.story-frame-inner .gold-leaf { position: static; width: 55%; }
.story-text .caption-en { color: var(--gold); display: block; margin-bottom: 6px; }
.story-signature {
	font-family: var(--font-latin);
	font-style: italic;
	font-size: 1.5rem;
	color: var(--gold);
	margin-top: 1em;
	direction: ltr;
	text-align: right;
}

/* Cards */
.cards { display: grid; gap: 30px; }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.cards-4 { grid-template-columns: repeat(4, 1fr); }

.card {
	position: relative;
	background: var(--parchment);
	border: var(--hairline);
	padding: 44px 30px 38px;
	text-align: center;
	transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.card::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid rgba(184, 146, 42, 0.16);
	pointer-events: none;
	transition: border-color .4s ease;
}
.card:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow-soft);
	border-color: var(--gold);
}
.card:hover::before { border-color: rgba(184, 146, 42, 0.45); }
.card-icon {
	width: 58px; height: 58px;
	margin: 0 auto 20px;
	color: var(--gold);
}
.card-icon svg { width: 100%; height: 100%; }
.card h3 { margin-bottom: .4em; }
.card .caption-en { display: block; color: var(--gold); font-size: .95rem; margin-bottom: 12px; }
.card p { color: var(--ink-soft); font-size: .97rem; margin: 0; }

.occasion-card { padding: 34px 22px; }
.occasion-card .num {
	font-family: var(--font-latin);
	font-size: 2.4rem;
	line-height: 1;
	display: block;
	margin-bottom: 10px;
}

/* Testimonials */
.testimonials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.testimonial {
	position: relative;
	padding: 48px 32px 32px;
	border-top: var(--hairline-strong);
	text-align: center;
}
.testimonial::before {
	content: "\201D";
	position: absolute;
	top: -8px; right: 50%;
	transform: translateX(50%);
	font-family: var(--font-latin);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--gold-foil);
	background: var(--cream);
	padding: 0 14px;
}
.section-alt .testimonial::before { background: var(--parchment); }
.testimonial blockquote {
	margin: 0 0 18px;
	font-size: 1.06rem;
	font-style: normal;
	color: var(--ink);
}
.testimonial cite {
	font-style: normal;
	font-family: var(--font-heading);
	color: var(--gold);
}
.stars { color: var(--gold-foil); letter-spacing: 4px; margin-bottom: 10px; display: block; }

/* WhatsApp CTA */
.cta-whatsapp {
	position: relative;
	text-align: center;
	background: var(--ink);
	color: var(--cream);
	overflow: hidden;
}
.cta-whatsapp::before {
	content: "";
	position: absolute;
	inset: 24px;
	border: 1px solid rgba(201, 168, 76, 0.4);
	pointer-events: none;
}
.cta-whatsapp h2 { color: var(--cream); }
.cta-whatsapp p { color: rgba(245, 239, 230, 0.78); max-width: 560px; margin: 0 auto 2em; }
.btn-whatsapp {
	background: transparent;
	color: var(--gold-light);
	border-color: var(--gold-foil);
	padding: 14px 36px;
	font-size: 1.1rem;
}
.btn-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
.btn-whatsapp:hover { background: var(--gold-foil); color: var(--ink); }

.whatsapp-float {
	position: fixed;
	bottom: 22px;
	left: 22px;
	z-index: 90;
	width: 54px; height: 54px;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--ink);
	border: 1px solid var(--gold-foil);
	color: var(--gold-light);
	box-shadow: var(--shadow-soft);
}
.whatsapp-float svg { width: 26px; height: 26px; fill: currentColor; }
.whatsapp-float:hover { background: var(--gold); color: var(--parchment); }

/* ==========================================================================
   7. Generic content (pages / posts)
   ========================================================================== */
.site-main { min-height: 50vh; }
.page-header {
	text-align: center;
	padding: 70px 0 40px;
}
.page-header h1 { margin-bottom: .2em; }
.entry-content { max-width: 820px; margin: 0 auto; padding-bottom: 90px; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.post-list { display: grid; gap: 40px; padding-bottom: 90px; }
.post-item { border-bottom: var(--hairline); padding-bottom: 30px; }
.pagination, .woocommerce-pagination { text-align: center; margin: 40px 0; }

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
select,
textarea {
	width: 100%;
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--ink);
	background: var(--parchment);
	border: var(--hairline);
	border-radius: var(--radius);
	padding: 11px 14px;
	transition: border-color .25s ease, box-shadow .25s ease;
}
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.18);
}

/* ==========================================================================
   8. Footer
   ========================================================================== */
.site-footer {
	background: #1a1208;
	color: rgba(245, 239, 230, 0.72);
	padding: 80px 0 30px;
	position: relative;
}
.site-footer::before {
	content: "";
	position: absolute;
	top: 0; right: 0; left: 0;
	height: 1px;
	background: linear-gradient(to left, transparent, var(--gold-foil), transparent);
}
.footer-inner { text-align: center; }
.footer-brand { display: inline-flex; margin-bottom: 26px; }
.footer-brand .brand-he { font-size: 2.4rem; }
.footer-tagline { font-family: var(--font-latin); font-style: italic; color: var(--gold-light); margin-bottom: 30px; }
.footer-nav ul {
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px 34px;
}
.footer-nav a { color: rgba(245, 239, 230, 0.8); font-size: .96rem; }
.footer-nav a:hover { color: var(--gold-light); }
.footer-bottom {
	border-top: 1px solid rgba(201, 168, 76, 0.22);
	padding-top: 24px;
	font-size: .88rem;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
}
.footer-bottom .latin { color: var(--gold-foil); }

/* ==========================================================================
   9. Scroll reveal (sections below the hero only)
   Elements are hidden only after main.js adds .reveal-ready to <html>,
   so content is never stuck invisible if the script fails to load.
   ========================================================================== */
.reveal-ready .reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1);
}
.reveal-ready .reveal.is-visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
.reveal-delay-3 { transition-delay: .36s; }

/* Hero: visible immediately on load — CSS-only entrance, never opacity:0. */
@keyframes fadeUp {
	from { transform: translateY(20px); }
	to { transform: translateY(0); }
}
.hero-logo-he {
	opacity: 1 !important;
	animation: fadeUp 1s ease forwards;
}
.hero-tagline-he,
.hero-eyebrow,
.hero-cta {
	opacity: 1 !important;
	animation: fadeUp 1s ease forwards;
}
.hero-ornament,
.hero-sub {
	opacity: 1 !important;
	animation: fadeUp 1s ease forwards;
}
.hero-logo-he.gold-foil {
	/* keep the foil shimmer running alongside the entrance */
	animation: fadeUp 1s ease forwards, foil-shimmer 9s ease-in-out infinite;
}
.hero-tagline-he { animation-delay: .1s; }
.hero-sub { animation-delay: .15s; }
.hero-cta { animation-delay: .2s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal-ready .reveal { opacity: 1; transform: none; transition: none; }
	.hero-logo-he, .hero-logo-he.gold-foil, .hero-tagline-he, .hero-eyebrow, .hero-cta, .hero-ornament, .hero-sub { animation: none; }
	.gold-foil, .gold-dust i { animation: none; }
	.gold-dust i { opacity: .6; }
}

/* ==========================================================================
   10. WooCommerce overrides
   ========================================================================== */
.woocommerce-page .site-main,
.woocommerce .site-main { padding-bottom: 90px; }

.woocommerce .woocommerce-breadcrumb {
	font-size: .88rem;
	color: var(--ink-soft);
	margin: 30px 0 10px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--gold); }

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	background: var(--parchment) !important;
	border: var(--hairline) !important;
	border-top: 2px solid var(--gold) !important;
	color: var(--ink) !important;
	padding: 16px 54px 16px 20px !important;
	list-style: none;
	margin: 0 0 30px !important;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--gold) !important; right: 20px !important; left: auto !important; }
.woocommerce-error { border-top-color: #9b3b2a !important; }
.woocommerce-message .button,
.woocommerce-info .button { float: left !important; }

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button:not(.is-link) {
	font-family: var(--font-heading) !important;
	font-weight: 500 !important;
	background: transparent !important;
	color: var(--ink) !important;
	border: 1px solid var(--gold) !important;
	border-radius: var(--radius) !important;
	padding: 12px 28px !important;
	transition: background .3s ease, color .3s ease !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--gold) !important;
	color: var(--parchment) !important;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce #place_order,
.woocommerce .checkout-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
	background: var(--ink) !important;
	color: var(--cream) !important;
	border-color: var(--ink) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce #place_order:hover,
.woocommerce .checkout-button:hover {
	background: var(--gold) !important;
	border-color: var(--gold) !important;
}

/* Price */
.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price {
	color: var(--gold) !important;
	font-family: var(--font-heading);
	font-weight: 500;
}
.woocommerce .price del { opacity: .55; color: var(--ink-soft); }
.woocommerce .price ins { text-decoration: none; }

.woocommerce span.onsale {
	background: var(--gold) !important;
	color: var(--parchment) !important;
	border-radius: 0 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	line-height: 1 !important;
	padding: 8px 14px !important;
	font-family: var(--font-heading);
	font-weight: 400;
	top: 14px !important;
	right: 14px !important;
	left: auto !important;
	margin: 0 !important;
}

/* --- Shop archive: 2-column grid with gold-border cards --- */
.shop-header { text-align: center; padding: 60px 0 30px; }
.shop-header .term-description,
.shop-header .page-description { color: var(--ink-soft); max-width: 640px; margin: 0 auto; }

.shop-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px 0;
	margin-bottom: 36px;
	border-top: var(--hairline);
	border-bottom: var(--hairline);
}
.shop-toolbar .woocommerce-result-count,
.shop-toolbar .woocommerce-ordering { float: none !important; margin: 0 !important; font-size: .92rem; color: var(--ink-soft); }
.shop-toolbar select { width: auto; padding: 8px 12px; }

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
	margin: 0 0 50px !important;
	padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 16px 16px 30px !important;
	background: var(--parchment);
	border: 1px solid var(--gold);
	position: relative;
	text-align: center;
	transition: transform .4s ease, box-shadow .4s ease;
}
.woocommerce ul.products li.product::before {
	content: "";
	position: absolute;
	inset: 6px;
	border: 1px solid rgba(184, 146, 42, 0.28);
	pointer-events: none;
	z-index: 1;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px -24px rgba(42, 31, 14, 0.5);
}
.woocommerce ul.products li.product a img {
	margin: 0 0 22px !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform .7s ease;
}
.woocommerce ul.products li.product .woocommerce-loop-product__link { display: block; overflow: hidden; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-heading) !important;
	font-size: 1.45rem !important;
	font-weight: 500;
	color: var(--ink);
	padding: 0 !important;
	margin-bottom: 6px;
}
.woocommerce ul.products li.product .price { font-size: 1.15rem !important; margin-bottom: 18px !important; display: block; }
.woocommerce ul.products li.product .button { margin-top: 0 !important; position: relative; z-index: 2; }
.woocommerce ul.products li.product .star-rating { margin: 0 auto 10px !important; }
.woocommerce .star-rating span::before,
.woocommerce p.stars a { color: var(--gold) !important; }

/* --- Single product --- */
.single-product-wrap { padding: 20px 0 90px; }
.woocommerce div.product.benoam-product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}
.woocommerce div.product.benoam-product > .woocommerce-tabs,
.woocommerce div.product.benoam-product > .related,
.woocommerce div.product.benoam-product > .up-sells { grid-column: 1 / -1; }

.woocommerce div.product .product-gallery-frame {
	border: 1px solid var(--gold);
	padding: 12px;
	background: var(--parchment);
	position: relative;
}
.woocommerce div.product .product-gallery-frame::after {
	content: "";
	position: absolute;
	inset: -10px 10px 10px -10px;
	border: var(--hairline);
	z-index: -1;
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 10px; display: flex; gap: 8px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; flex: 1; float: none !important; }

.woocommerce div.product .product_title {
	font-size: clamp(2rem, 4vw, 2.8rem);
	margin-bottom: .2em;
}
.woocommerce div.product .summary .caption-en { color: var(--gold); display: block; margin-bottom: 14px; }
.woocommerce div.product p.price { font-size: 1.6rem !important; margin-bottom: 20px; }
.woocommerce-product-details__short-description { color: var(--ink-soft); margin-bottom: 26px; }

.processing-notice {
	display: flex;
	gap: 14px;
	align-items: center;
	padding: 16px 20px;
	margin: 0 0 28px;
	border: var(--hairline);
	border-right: 3px solid var(--gold);
	background: var(--parchment);
}
.processing-notice svg { flex: 0 0 30px; width: 30px; height: 30px; color: var(--gold); }
.processing-notice strong { font-family: var(--font-heading); font-weight: 500; display: block; }
.processing-notice span { font-size: .92rem; color: var(--ink-soft); }

.benoam-dedication { margin: 0 0 24px; }
.benoam-dedication label {
	display: block;
	font-family: var(--font-heading);
	font-size: 1.1rem;
	margin-bottom: 4px;
}
.benoam-dedication label .caption-en { font-size: .9rem; color: var(--gold); margin-inline-start: 8px; }
.benoam-dedication .hint { font-size: .86rem; color: var(--ink-soft); margin: 0 0 10px; }
.benoam-dedication textarea {
	min-height: 120px;
	resize: vertical;
	font-family: var(--font-heading);
	font-size: 1.05rem;
	line-height: 1.7;
	background:
		repeating-linear-gradient(to bottom, transparent 0, transparent 34px, rgba(184, 146, 42, 0.14) 34px, rgba(184, 146, 42, 0.14) 35px),
		var(--parchment);
}
.benoam-dedication .counter { font-size: .8rem; color: var(--ink-soft); text-align: left; display: block; margin-top: 4px; font-family: var(--font-latin); }

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: stretch;
	margin-bottom: 30px !important;
}
.woocommerce div.product form.cart .benoam-dedication { flex: 0 0 100%; }
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none !important; margin: 0 !important; }
.woocommerce div.product form.cart .single_add_to_cart_button { float: none !important; flex: 1; padding: 14px 30px !important; font-size: 1.1rem !important; }
.woocommerce div.product form.cart .variations { width: 100%; flex: 0 0 100%; }
.woocommerce .quantity .qty { width: 4.5em; height: 100%; text-align: center; }

.woocommerce div.product .product_meta { font-size: .9rem; color: var(--ink-soft); border-top: var(--hairline); padding-top: 16px; }
.woocommerce div.product .product_meta > span { display: block; }

.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 40px 0 0 !important; text-align: center; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom: var(--hairline) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 6px !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: var(--font-heading); font-weight: 400 !important; color: var(--ink-soft) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--gold) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink) !important; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 820px; margin: 30px auto 0 !important; }

.related.products > h2,
.up-sells > h2 { text-align: center; margin: 70px 0 36px; }

/* --- Cart / checkout / account --- */
.woocommerce table.shop_table {
	border: var(--hairline) !important;
	border-radius: 0 !important;
	background: var(--parchment);
	border-collapse: collapse !important;
}
.woocommerce table.shop_table th {
	font-family: var(--font-heading);
	font-weight: 500;
	background: var(--cream-deep);
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-top: var(--hairline) !important; padding: 14px 16px !important; text-align: right; }
.woocommerce table.shop_table img { width: 70px; border: var(--hairline); }
.woocommerce a.remove { color: var(--gold) !important; }
.woocommerce a.remove:hover { background: var(--gold) !important; color: var(--parchment) !important; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading { float: none; width: 100%; }

.woocommerce dl.variation,
.wc-item-meta { font-size: .88rem; color: var(--ink-soft); }
.woocommerce dl.variation dt,
.wc-item-meta strong { font-family: var(--font-heading); font-weight: 500; color: var(--ink); }

.woocommerce form .form-row label { font-family: var(--font-heading); margin-bottom: 4px; }
.woocommerce form .form-row .required { color: var(--gold); }
.woocommerce form .form-row-first,
.woocommerce-page form .form-row-first { float: right; }
.woocommerce form .form-row-last,
.woocommerce-page form .form-row-last { float: left; }

.woocommerce-checkout #payment {
	background: var(--parchment) !important;
	border: var(--hairline);
	border-radius: 0 !important;
}
.woocommerce-checkout #payment div.payment_box { background: var(--cream-deep) !important; color: var(--ink) !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--cream-deep) !important; }

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border: var(--hairline); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 18px; border-bottom: var(--hairline); color: var(--ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--parchment); color: var(--gold); }
.woocommerce-account .woocommerce-MyAccount-navigation { float: right !important; }
.woocommerce-account .woocommerce-MyAccount-content { float: left !important; }

/* WooCommerce blocks (cart/checkout blocks) */
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea {
	background: var(--parchment) !important;
	border-color: rgba(184, 146, 42, 0.45) !important;
	border-radius: var(--radius) !important;
}
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary { border-color: rgba(184, 146, 42, 0.35) !important; }

/* ==========================================================================
   11. Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.cards-4 { grid-template-columns: repeat(2, 1fr); }
	.main-nav ul { gap: 22px; }
}

@media (max-width: 900px) {
	:root { --header-h: 72px; }
	.nav-toggle { display: inline-flex; }
	.main-nav {
		position: fixed;
		top: var(--header-h);
		right: 0; left: 0;
		background: var(--parchment);
		border-bottom: var(--hairline);
		max-height: 0;
		overflow: hidden;
		transition: max-height .4s ease;
	}
	.admin-bar .main-nav { top: calc(var(--header-h) + 46px); }
	.nav-open .main-nav { max-height: 80vh; overflow-y: auto; }
	.main-nav ul { flex-direction: column; gap: 0; width: 100%; padding: 10px 24px 20px; }
	.main-nav li { border-bottom: var(--hairline); }
	.main-nav a { display: block; padding: 14px 0; }
	.main-nav .sub-menu { position: static; display: flex; box-shadow: none; border: none; background: transparent; padding: 0 16px 10px; }
	.brand { order: 0; }
	.header-actions .btn-shop { display: none; }

	.story-grid { grid-template-columns: 1fr; gap: 50px; }
	.cards-3, .testimonials { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
	.woocommerce div.product.benoam-product { grid-template-columns: 1fr; gap: 40px; }
	.section { padding: 80px 0; }
	.hero::before { inset: 14px; }
	.hero::after { inset: 20px; }
}

@media (max-width: 600px) {
	body { font-size: 16px; }
	.cards-4 { grid-template-columns: 1fr; }
	.woocommerce ul.products,
	.woocommerce-page ul.products { grid-template-columns: 1fr; gap: 28px; }
	.footer-bottom { justify-content: center; text-align: center; }
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { float: none; width: 100%; }
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: 100% !important; }
}
