/* =========================================================
   Rubu – warm luxury layer (v0.3): ivory, espresso, champagne, wine
   Loaded after style.css. Remove the enqueue in functions.php to go back to the original look.
   ========================================================= */
body { background: var(--rb-bg); color: var(--rb-ink); }
::selection { background: var(--rb-sand); color: var(--rb-ink); }

/* Header & top bar */
.rb-topbar { background: var(--rb-espresso); color: #EADFCF; }
.rb-header { background: color-mix(in srgb, var(--rb-bg) 94%, transparent) !important; backdrop-filter: saturate(140%) blur(10px); -webkit-backdrop-filter: saturate(140%) blur(10px); }
.rb-nav .wp-block-navigation-item__content { position: relative; }
.rb-nav .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: var(--rb-gold);
	transform: scaleX(0); transform-origin: center; transition: transform .35s ease;
}
.rb-nav .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.rb-nav .wp-block-navigation-item__content:hover { color: var(--rb-ink); }

/* Type accents */
.rb-eyebrow { color: var(--rb-gold-text); display: inline-flex; align-items: center; gap: 12px; }
.rb-hero .rb-eyebrow::before, .rb-story .rb-eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--rb-gold); }
.rb-hero__title em, .rb-story__title em, .rb-section__head h2 em { color: var(--rb-wine); }
.rb-section__eyebrow { display: block; margin-bottom: 10px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-gold-text); }
.rb-section__head h2 em { font-style: italic; }

/* Buttons & links */
.rb-btn, .rb-cta:not(:disabled) { background: var(--rb-accent); color: var(--rb-bg) !important; }
.rb-btn:hover, .rb-cta:hover:not(:disabled) { background: var(--rb-wine) !important; color: var(--rb-bg) !important; }
.rb-link { border-bottom-color: var(--rb-gold); }
.rb-link:hover { color: var(--rb-wine); border-color: var(--rb-wine); }
.rb-more:hover, .rb-coll:hover .rb-coll__more { color: var(--rb-wine); }
.rb-cta:disabled { background: var(--rb-sand); color: var(--rb-muted); }

/* Placeholders & media */
.rb-card__media, .rb-coll__media, .rb-thumb, .rb-collection .wc-block-components-product-image { background: var(--rb-sand) !important; }
.rb-pd__main { background: var(--rb-sand); }

/* Cards: second photo on hover */
.rb-card__img--alt { opacity: 0; transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1) !important; }
@media (hover: hover) {
	.rb-card:hover .rb-card__img--alt { opacity: 1; }
}
.rb-badge { background: var(--rb-bg); color: var(--rb-wine); }
.rb-collection .wc-block-components-product-sale-badge { background: var(--rb-bg) !important; color: var(--rb-wine) !important; }
.rb-card__price ins, .rb-pd__price ins, .rb-pc__price ins { color: var(--rb-wine); }

/* Story & USP */
.rb-story { background: var(--rb-soft); }
.rb-usp__item { border-top-color: var(--rb-gold); }

/* Product page */
.rb-size { background: var(--rb-paper); border-color: var(--rb-border); }
.rb-size:hover { border-color: var(--rb-ink); }
.rb-size[aria-pressed="true"] { background: var(--rb-accent); border-color: var(--rb-accent); color: var(--rb-bg); }
.rb-swatch { box-shadow: inset 0 0 0 3px var(--rb-bg), 0 0 0 1px var(--rb-border); }
.rb-swatch[aria-pressed="true"] { box-shadow: inset 0 0 0 3px var(--rb-bg), 0 0 0 1px var(--rb-ink); }
.rb-pd__perks { list-style: none; margin: 4px 0 0; padding: 18px 0 0; border-top: 1px solid var(--rb-line); display: grid; gap: 10px; font-size: 14px; color: var(--rb-body); }
.rb-pd__perks li { display: flex; gap: 12px; align-items: center; }
.rb-pd__perks svg { flex: 0 0 18px; color: var(--rb-gold-text); }
.rb-pd__perks a { border-bottom: 1px solid var(--rb-gold); }
.rb-sticky { background: var(--rb-bg); }

/* Newsletter */
.rb-nl__field input { background: var(--rb-paper); border-color: var(--rb-input); }
.rb-nl__field input:focus { border-color: var(--rb-ink); outline: none; }

/* Inspiration (lookbook) */
.rb-looks { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 24px; align-items: end; }
.rb-look { position: relative; display: block; overflow: hidden; color: #FBF8F3; }
.rb-look:nth-child(1) { aspect-ratio: 4 / 5; }
.rb-look:nth-child(2), .rb-look:nth-child(3) { aspect-ratio: 3 / 4; }
.rb-look img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1) !important; }
.rb-look:hover img { transform: scale(1.04); }
.rb-look::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,24,20,0) 45%, rgba(30,24,20,.62) 100%); }
.rb-look__cap { position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 1; display: flex; flex-direction: column; gap: 6px; }
.rb-look__occ { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #E7D7BD; }
.rb-look__name { font-family: var(--rb-serif); font-size: 26px; line-height: 1.15; color: #FBF8F3; }
.rb-look__go { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #FBF8F3; opacity: .85; }
.rb-look:hover { color: #FBF8F3; }

/* Salon fitting */
.rb-salon { padding-top: 120px !important; }
.rb-salon__box { display: grid; grid-template-columns: 1fr 1fr; background: var(--rb-espresso); color: #EADFCF; overflow: hidden; }
.rb-salon__media { position: relative; min-height: 540px; }
.rb-salon__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rb-salon__text { padding: clamp(40px, 6vw, 88px); display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.rb-salon__text > * { margin: 0; }
.rb-salon .rb-eyebrow { color: #C9AE84; }
.rb-salon .rb-eyebrow::before { content: ""; width: 32px; height: 1px; background: #C9AE84; }
.rb-salon__title { font-family: var(--rb-serif); font-weight: 400; font-size: clamp(34px, 3.4vw, 52px); line-height: 1.08; color: #FBF8F3; }
.rb-salon__title em { color: #D9B98C; font-style: italic; }
.rb-salon__lead { max-width: 440px; font-size: 16px; line-height: 1.75; color: #D2C5B4; }
.rb-salon__list { list-style: none; padding: 0; display: grid; gap: 10px; font-size: 14px; color: #EADFCF; }
.rb-salon__list li::before { content: ""; display: inline-block; width: 18px; height: 1px; background: #C9AE84; vertical-align: middle; margin-right: 12px; }
.rb-salon__ctas { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; padding-top: 6px; }
.rb-salon .rb-btn { background: #FBF8F3; color: #221B16 !important; }
.rb-salon .rb-btn:hover { background: #E7D7BD !important; color: #221B16 !important; }
.rb-salon__ctas .rb-link { color: #EADFCF; border-color: #C9AE84; }
.rb-salon__ctas .rb-link:hover { color: #FFFFFF; border-color: #FFFFFF; }

/* Footer: warm espresso */
.rb-footer { background: var(--rb-espresso); color: #D8CCBD; }
.rb-footer__brand p, .rb-footer__bottom, .rb-footer__bottom a { color: #A89A8A; }
.rb-footer__col a { color: #D8CCBD; }
.rb-footer__col a:hover, .rb-footer__bottom a:hover { color: #FFFFFF; }
.rb-footer__title { color: #C9AE84; }
.rb-footer__bottom { border-top-color: #3A3029; }

/* Woo blocks: warm surfaces */
.wc-block-mini-cart__drawer .components-modal__content, .wc-block-mini-cart__drawer { background: var(--rb-bg) !important; }
.wc-block-components-notice-banner { background: var(--rb-soft) !important; border-color: var(--rb-line) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea { background: var(--rb-paper) !important; }
.wp-block-woocommerce-checkout-order-summary-block { background: var(--rb-paper); }
.wc-block-mini-cart__footer-checkout, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--rb-accent) !important; color: var(--rb-bg) !important; }
.wc-block-mini-cart__footer-checkout:hover, .wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover { background: var(--rb-wine) !important; }

/* =========================================================
   Forms – one calm style for every text field (checkout, cart, account, search, newsletter)
   ========================================================= */
:root { --rb-field-h: 54px; --rb-ring: 0 0 0 3px rgba(176, 143, 98, .16); }

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.woocommerce form .input-text, .woocommerce form select, .woocommerce-Input,
.wp-block-search__input, .rb-nl__field input {
	min-height: var(--rb-field-h) !important;
	border: 1px solid var(--rb-border) !important;
	border-radius: 0 !important;
	background: var(--rb-paper) !important;
	color: var(--rb-ink) !important;
	font-family: var(--rb-sans) !important;
	font-size: 15px !important;
	box-shadow: none !important;
	outline: none !important;
	caret-color: var(--rb-wine);
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease !important;
}
.wc-block-components-text-input input:hover,
.wc-blocks-components-select .wc-blocks-components-select__select:hover,
.woocommerce form .input-text:hover, .rb-nl__field input:hover, .wp-block-search__input:hover { border-color: var(--rb-input) !important; }

/* Focus: espresso border + soft champagne glow, no double frame, no jump */
.wc-block-components-text-input input:focus, .wc-block-components-text-input input:focus-within,
.wc-block-components-textarea:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.woocommerce form .input-text:focus, .woocommerce form select:focus,
.wp-block-search__input:focus, .rb-nl__field input:focus {
	border: 1px solid var(--rb-ink) !important;
	box-shadow: var(--rb-ring) !important;
	outline: none !important;
	background: #FFFFFF !important;
}
.wc-block-components-text-input.is-active input[type],
.wc-block-components-text-input.is-active input[type]:focus-within { padding: 24px 14px 8px !important; }
.wc-block-components-text-input input[type] { padding: 16px 14px !important; }
.wc-block-components-text-input.is-active input[type] { padding-top: 24px !important; padding-bottom: 8px !important; }

/* Floating labels */
.wc-block-components-text-input label,
.wc-block-components-combobox .wc-block-components-combobox-control label,
.wc-blocks-components-select .wc-blocks-components-select__label {
	color: var(--rb-muted) !important; font-family: var(--rb-sans); font-size: 15px; left: 15px !important; letter-spacing: 0;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label,
.wc-blocks-components-select .wc-blocks-components-select__label {
	top: 7px !important; transform: none !important; font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--rb-gold-text) !important;
}
.wc-block-components-text-input input:focus::placeholder { color: transparent; }
.wc-block-components-text-input input:focus + label { transition: none; }

/* Selects */
.wc-blocks-components-select .wc-blocks-components-select__container { border-radius: 0 !important; background: transparent !important; }
.wc-blocks-components-select .wc-blocks-components-select__select { padding: 24px 40px 8px 14px !important; }
.wc-blocks-components-select .wc-blocks-components-select__expand { fill: var(--rb-ink) !important; }

/* Errors stay readable but warm */
.wc-block-components-text-input.has-error input, .wc-blocks-components-select.has-error .wc-blocks-components-select__select { border-color: #A1453C !important; }
.wc-block-components-text-input.has-error input:focus { box-shadow: 0 0 0 3px rgba(161, 69, 60, .14) !important; }
.wc-block-components-validation-error, .wc-block-components-text-input.has-error label { color: #A1453C !important; }

/* Coupon: field + button on one line, same height, real button colours */
.wc-block-components-totals-coupon__form { display: flex; gap: 8px; align-items: stretch; }
.wc-block-components-totals-coupon__form .wc-block-components-text-input { flex: 1 1 auto; margin: 0 !important; }
.wc-block-components-totals-coupon__button {
	min-height: var(--rb-field-h) !important; margin: 0 !important; border-radius: 0 !important;
	background: var(--rb-accent) !important; color: var(--rb-bg) !important; opacity: 1 !important;
	font: 400 12px/1 var(--rb-sans) !important; letter-spacing: .16em !important; text-transform: uppercase;
}
.wc-block-components-totals-coupon__button:hover:not(:disabled) { background: var(--rb-wine) !important; }
.wc-block-components-totals-coupon__button:disabled,
.wc-block-components-button:disabled:not(.is-link) { background: var(--rb-sand) !important; color: var(--rb-muted) !important; opacity: 1 !important; cursor: default; }
.wc-block-components-panel__button { font-family: var(--rb-sans) !important; font-size: 15px !important; color: var(--rb-ink) !important; }
.wc-block-components-panel__button:focus, .wc-block-components-panel__button:focus-visible { outline: none !important; box-shadow: none !important; text-decoration: underline; text-decoration-color: var(--rb-gold); text-underline-offset: 4px; }

/* Checkboxes & radios */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 0 !important; border: 1px solid var(--rb-input) !important; background: var(--rb-paper) !important; width: 20px; height: 20px; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--rb-accent) !important; border-color: var(--rb-accent) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--rb-bg) !important; }
.wc-block-components-checkbox__input:focus, .wc-block-components-radio-control__input:focus { outline: none !important; box-shadow: var(--rb-ring) !important; }
.wc-block-components-radio-control__input { border: 1px solid var(--rb-input) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--rb-ink) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--rb-ink) !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1px var(--rb-ink) !important; background: var(--rb-paper);
}
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--rb-line) !important; }

/* Quantity stepper */
.wc-block-components-quantity-selector { border-radius: 0 !important; border-color: var(--rb-border) !important; background: var(--rb-paper); }
.wc-block-components-quantity-selector::after { border: 0 !important; }
.wc-block-components-quantity-selector input:focus, .wc-block-components-quantity-selector button:focus { outline: none !important; box-shadow: none !important; }

/* Radio groups: square corners everywhere */
.wc-block-components-radio-control, .wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option, .wc-block-components-radio-control--highlight-checked { border-radius: 0 !important; }
.wc-block-components-radio-control--highlight-checked::after { border-radius: 0 !important; border-color: var(--rb-line) !important; }

/* Classic forms (account login / register, lost password) */
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password, .woocommerce-ResetPassword {
	border: 1px solid var(--rb-line) !important; border-radius: 0 !important; background: var(--rb-paper); padding: 32px !important; margin: 0 !important;
}
.woocommerce form .form-row { padding: 0 !important; margin: 0 0 18px !important; }
.woocommerce form .form-row label, .woocommerce-account .woocommerce form label {
	font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--rb-muted); margin-bottom: 8px; line-height: 1.4;
}
.woocommerce form .form-row .required { color: var(--rb-gold-text) !important; text-decoration: none; }
.woocommerce form .input-text { padding: 0 14px !important; }
.woocommerce form .woocommerce-form-login__rememberme { text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; color: var(--rb-body) !important; display: inline-flex; gap: 8px; align-items: center; }
.woocommerce form input[type=checkbox] { accent-color: var(--rb-accent); width: 16px; height: 16px; }
.woocommerce form .button, .woocommerce-account .woocommerce .button {
	min-height: var(--rb-field-h); padding: 0 32px !important; border-radius: 0 !important; background: var(--rb-accent) !important; color: var(--rb-bg) !important;
	font: 400 12px/1 var(--rb-sans) !important; letter-spacing: .16em !important; text-transform: uppercase; border: 0 !important;
}
.woocommerce form .button:hover { background: var(--rb-wine) !important; }
.woocommerce-LostPassword a, .woocommerce-privacy-policy-text a { border-bottom: 1px solid var(--rb-gold); }
.woocommerce-privacy-policy-text p { font-size: 13px; color: var(--rb-muted); }
.woocommerce-account h2 { font-size: 32px; }
.show-password-input { color: var(--rb-muted) !important; }

/* Never draw the global focus frame around form fields (they have their own) */
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: none !important; }

@media (max-width: 781px) {
	.rb-looks { grid-template-columns: 1fr 1fr; gap: 12px; }
	.rb-look:nth-child(1) { grid-column: 1 / -1; }
	.rb-look__name { font-size: 20px; }
	.rb-look__cap { left: 14px; right: 14px; bottom: 14px; }
	.rb-salon { padding-top: 80px !important; }
	.rb-salon__box { grid-template-columns: 1fr; margin: 0 calc(-1 * var(--rb-pad)); }
	.rb-salon__media { min-height: 320px; }
	/* Collections: swipeable row instead of three tall cards */
	.rb-colls { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; gap: 12px; margin: 0 -16px !important; padding: 0 16px 4px !important; scrollbar-width: none; }
	.rb-colls::after { content: ""; flex: 0 0 4px; }
	.rb-colls::-webkit-scrollbar { display: none; }
	.rb-coll { flex: 0 0 72%; scroll-snap-align: start; }
	.rb-coll__title { font-size: 20px; }
}
