/**
 * Dresses Direct — luxury boutique theme
 * Palette: ink · porcelain · champagne · soft blush wash
 */

:root {
	--dd-ink: #141210;
	--dd-ink-soft: #2c2824;
	--dd-porcelain: #f8f4ef;
	--dd-porcelain-deep: #efe8df;
	--dd-champagne: #b8956c;
	--dd-champagne-deep: #9a7a52;
	--dd-blush: #e8d5cc;
	--dd-muted: #6b6560;
	--dd-line: rgba(20, 18, 16, 0.12);
	--dd-white: #ffffff;
	--dd-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--dd-font-body: "Manrope", "Segoe UI", sans-serif;
	--dd-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--dd-space: clamp(1.25rem, 3vw, 2.5rem);
	--dd-max: 1280px;
}

/* -------------------------------------------------------------------------- */
/* Base                                                                       */
/* -------------------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
}

body.dd-theme,
body.dd-theme button,
body.dd-theme input,
body.dd-theme select,
body.dd-theme textarea {
	font-family: var(--dd-font-body);
	color: var(--dd-ink-soft);
	font-weight: 400;
	letter-spacing: 0.01em;
	-webkit-font-smoothing: antialiased;
}

body.dd-theme {
	background:
		radial-gradient(1200px 600px at 10% -10%, rgba(232, 213, 204, 0.45), transparent 55%),
		radial-gradient(900px 500px at 100% 0%, rgba(184, 149, 108, 0.12), transparent 50%),
		var(--dd-porcelain);
}

body.dd-theme h1,
body.dd-theme h2,
body.dd-theme h3,
body.dd-theme h4,
body.dd-theme h5,
body.dd-theme h6,
body.dd-theme .heading-font,
body.dd-theme .banner h1,
body.dd-theme .banner h2,
body.dd-theme .dd-heading {
	font-family: var(--dd-font-display);
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--dd-ink);
	line-height: 1.15;
}

body.dd-theme a {
	color: var(--dd-ink);
	transition: color 0.25s var(--dd-ease), opacity 0.25s var(--dd-ease);
}

body.dd-theme a:hover {
	color: var(--dd-champagne-deep);
}

.dd-eyebrow {
	font-family: var(--dd-font-body);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--dd-champagne-deep);
	margin: 0 0 0.75rem;
}

.dd-heading {
	font-size: clamp(2rem, 4.5vw, 3.35rem);
	margin: 0 0 1rem;
}

.dd-section-head {
	text-align: center;
	max-width: 36rem;
	margin: 0 auto 2.75rem;
}

.dd-section-head .dd-heading {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------- */
/* Header                                                                     */
/* -------------------------------------------------------------------------- */

body.dd-theme #header,
body.dd-theme .header-wrapper,
body.dd-theme .header-main,
body.dd-theme .header-bottom {
	background: rgba(248, 244, 239, 0.92) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.35s var(--dd-ease), box-shadow 0.35s var(--dd-ease);
}

body.dd-theme .header.stuck .header-wrapper,
body.dd-theme .header.stuck .header-main {
	border-bottom-color: var(--dd-line) !important;
	box-shadow: 0 8px 30px rgba(20, 18, 16, 0.06);
}

body.dd-theme #logo {
	width: auto !important;
}

body.dd-theme #logo img {
	max-height: 52px !important;
}

body.dd-theme .header-main .nav > li > a,
body.dd-theme .header-bottom .nav > li > a {
	font-family: var(--dd-font-body) !important;
	font-weight: 500 !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--dd-ink) !important;
}

body.dd-theme .header-main .nav > li > a:hover,
body.dd-theme .header-bottom .nav > li > a:hover {
	color: var(--dd-champagne-deep) !important;
	opacity: 1;
}

body.dd-theme .header-top {
	background: var(--dd-ink) !important;
	color: var(--dd-porcelain);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

body.dd-theme .header-top a {
	color: var(--dd-porcelain);
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                    */
/* -------------------------------------------------------------------------- */

.dd-btn,
body.dd-theme .button,
body.dd-theme .button.primary,
body.dd-theme .checkout-button,
body.dd-theme .single_add_to_cart_button,
body.dd-theme button.button:not(.minus):not(.plus),
body.dd-theme #place_order {
	font-family: var(--dd-font-body) !important;
	font-weight: 600 !important;
	font-size: 0.75rem !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
	border: 1px solid var(--dd-ink) !important;
	background: var(--dd-ink) !important;
	color: var(--dd-porcelain) !important;
	padding: 0.95rem 1.75rem !important;
	box-shadow: none !important;
	transition: background 0.3s var(--dd-ease), color 0.3s var(--dd-ease), border-color 0.3s var(--dd-ease), transform 0.3s var(--dd-ease) !important;
}

.dd-btn:hover,
body.dd-theme .button:hover,
body.dd-theme .button.primary:hover,
body.dd-theme .single_add_to_cart_button:hover,
body.dd-theme button.button:not(.minus):not(.plus):hover {
	background: var(--dd-champagne-deep) !important;
	border-color: var(--dd-champagne-deep) !important;
	color: var(--dd-white) !important;
	transform: translateY(-1px);
}

.dd-btn--ghost,
body.dd-theme .button.white,
body.dd-theme .button.is-outline {
	background: transparent !important;
	color: var(--dd-ink) !important;
	border-color: var(--dd-ink) !important;
}

.dd-btn--ghost:hover,
body.dd-theme .button.white:hover,
body.dd-theme .button.is-outline:hover {
	background: var(--dd-ink) !important;
	color: var(--dd-porcelain) !important;
}

.dd-btn--light {
	background: var(--dd-porcelain) !important;
	color: var(--dd-ink) !important;
	border-color: var(--dd-porcelain) !important;
}

.dd-btn--light:hover {
	background: transparent !important;
	color: var(--dd-porcelain) !important;
	border-color: var(--dd-porcelain) !important;
}

/* -------------------------------------------------------------------------- */
/* Homepage hero helpers (UX Builder banners)                                 */
/* -------------------------------------------------------------------------- */

body.dd-home .banner,
body.dd-theme .dd-hero,
body.dd-theme .ux-banner {
	position: relative;
	overflow: hidden;
}

body.dd-home .banner-bg,
body.dd-theme .dd-hero .bg {
	transform: scale(1.04);
	transition: transform 8s var(--dd-ease);
}

body.dd-home .banner:hover .banner-bg,
body.dd-theme .dd-hero:hover .bg {
	transform: scale(1);
}

body.dd-home .banner .banner-layers,
body.dd-theme .dd-hero .text-box {
	max-width: 40rem;
}

body.dd-home .banner h1,
body.dd-home .banner h2,
body.dd-theme .dd-hero h1 {
	font-family: var(--dd-font-display) !important;
	font-weight: 500 !important;
	font-size: clamp(2.75rem, 7vw, 5.5rem) !important;
	line-height: 1.05 !important;
	letter-spacing: 0.01em !important;
	text-shadow: none !important;
}

body.dd-home .banner p,
body.dd-theme .dd-hero p {
	font-family: var(--dd-font-body);
	font-size: clamp(0.95rem, 1.5vw, 1.1rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	max-width: 28rem;
	opacity: 0.92;
}

/* Full-bleed first section feel */
body.dd-home #main > .page-wrapper > .row:first-child,
body.dd-home #main > .section:first-child,
body.dd-home .page-wrapper > .banner:first-child {
	margin-top: 0;
}

/* -------------------------------------------------------------------------- */
/* Product grid                                                               */
/* -------------------------------------------------------------------------- */

body.dd-theme .products .product,
body.dd-theme .row .product-small {
	margin-bottom: 2rem;
}

body.dd-theme .product-small .box-image,
body.dd-theme .products .box-image,
body.dd-theme .product-small .image-fade_in_back,
body.dd-theme .has-equal-box-heights .box-image {
	border-radius: 0 !important;
	overflow: hidden !important;
	background: var(--dd-porcelain-deep);
	position: relative !important;
	padding: 0 !important;
	padding-top: 0 !important;
	height: auto !important;
	aspect-ratio: 2 / 3 !important;
}

body.dd-theme .product-small .box-image > div,
body.dd-theme .products .box-image > div {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
}

body.dd-theme .product-small .box-image a,
body.dd-theme .products .box-image a {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	z-index: 5 !important;
	pointer-events: auto !important;
}

body.dd-theme .product-small .box-image img,
body.dd-theme .products .box-image img {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center top !important;
	pointer-events: none !important;
	transition: transform 0.7s var(--dd-ease), opacity 0.4s ease;
}

body.dd-theme .product-small:hover .box-image img,
body.dd-theme .products .product:hover .box-image img {
	transform: scale(1.04);
}

body.dd-theme .product-small .image-tools,
body.dd-theme .product-small .overlay {
	pointer-events: none !important;
}

body.dd-theme .product-small .box-text a {
	position: relative;
	z-index: 6;
	pointer-events: auto !important;
}

body.dd-theme .product-small .box-text,
body.dd-theme .products .box-text {
	padding: 1rem 0.15rem 0 !important;
	text-align: left !important;
}

body.dd-theme .dd-product-title,
body.dd-theme .product-small .product-title,
body.dd-theme .product-small .name,
body.dd-theme .woocommerce-loop-product__title {
	font-family: var(--dd-font-display) !important;
	font-size: 1.15rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.02em !important;
	line-height: 1.25 !important;
	margin: 0 0 0.35rem !important;
	text-transform: none !important;
}

body.dd-theme .product-small .price,
body.dd-theme .products .price {
	font-family: var(--dd-font-body) !important;
	font-size: 0.85rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em !important;
	color: var(--dd-muted) !important;
}

body.dd-theme .product-small .price ins,
body.dd-theme .products .price .amount {
	color: var(--dd-ink) !important;
	text-decoration: none;
}

body.dd-theme .badge-container,
body.dd-theme .box-image .badge {
	border-radius: 0 !important;
}

body.dd-theme .badge-inner {
	background: var(--dd-ink) !important;
	font-family: var(--dd-font-body);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Soften quick-view chrome */
body.dd-theme .quick-view,
body.dd-theme .quick-view:hover {
	border-radius: 0 !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
}

/* -------------------------------------------------------------------------- */
/* Single product                                                             */
/* -------------------------------------------------------------------------- */

body.dd-theme.single-product .product-title,
body.dd-theme.single-product h1.product_title {
	font-family: var(--dd-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 500;
}

body.dd-theme.single-product .price {
	font-family: var(--dd-font-body);
	font-size: 1.1rem;
	letter-spacing: 0.04em;
	color: var(--dd-muted);
}

body.dd-theme.single-product .woocommerce-product-gallery {
	background: var(--dd-porcelain-deep);
}

body.dd-theme.single-product .variations select,
body.dd-theme.single-product .qty {
	border-radius: 0 !important;
	border-color: var(--dd-line) !important;
	min-height: 48px;
}

body.dd-theme.single-product .product-sidebar,
body.dd-theme.single-product .product-footer {
	border-color: var(--dd-line);
}

/* -------------------------------------------------------------------------- */
/* Shop / category                                                            */
/* -------------------------------------------------------------------------- */

body.dd-theme .shop-page-title,
body.dd-theme .page-title,
body.dd-theme .category-page-title {
	background: var(--dd-porcelain-deep) !important;
	border: none !important;
}

body.dd-theme .page-title h1,
body.dd-theme .shop-page-title h1 {
	font-family: var(--dd-font-display);
	font-weight: 500;
	letter-spacing: 0.03em;
}

body.dd-theme .woocommerce-result-count,
body.dd-theme .woocommerce-ordering select {
	font-size: 0.8rem;
	letter-spacing: 0.04em;
}

/* -------------------------------------------------------------------------- */
/* Shortcode sections                                                         */
/* -------------------------------------------------------------------------- */

.dd-trust {
	padding: clamp(2.5rem, 5vw, 4rem) var(--dd-space);
	border-top: 1px solid var(--dd-line);
	border-bottom: 1px solid var(--dd-line);
	background: rgba(255, 255, 255, 0.45);
}

.dd-trust__grid {
	max-width: var(--dd-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.dd-trust__label {
	display: block;
	font-family: var(--dd-font-display);
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--dd-ink);
	margin-bottom: 0.4rem;
}

.dd-trust__item p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.55;
	color: var(--dd-muted);
}

.dd-occasions {
	padding: clamp(3.5rem, 7vw, 6rem) var(--dd-space);
}

.dd-occasions__grid {
	max-width: var(--dd-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--dd-line);
	border: 1px solid var(--dd-line);
}

.dd-occasion {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: 2rem 1.5rem;
	background: var(--dd-white);
	text-decoration: none !important;
	min-height: 220px;
	transition: background 0.35s var(--dd-ease);
}

.dd-occasion:hover {
	background: var(--dd-porcelain);
	color: var(--dd-ink);
}

.dd-occasion__title {
	font-family: var(--dd-font-display);
	font-size: 1.65rem;
	font-weight: 500;
	color: var(--dd-ink);
}

.dd-occasion__desc {
	flex: 1;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--dd-muted);
}

.dd-occasion__cta {
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dd-champagne-deep);
}

.dd-story {
	padding: clamp(4rem, 9vw, 7rem) var(--dd-space);
	background:
		linear-gradient(135deg, rgba(20, 18, 16, 0.88), rgba(44, 40, 36, 0.78)),
		radial-gradient(circle at 80% 20%, rgba(184, 149, 108, 0.35), transparent 45%);
	color: var(--dd-porcelain);
	text-align: center;
}

.dd-story .dd-eyebrow {
	color: var(--dd-blush);
}

.dd-story .dd-heading {
	color: var(--dd-porcelain);
	max-width: 18ch;
	margin-left: auto;
	margin-right: auto;
}

.dd-story__inner {
	max-width: 40rem;
	margin: 0 auto;
}

.dd-story__text {
	font-size: 1.05rem;
	line-height: 1.7;
	color: rgba(248, 244, 239, 0.82);
	margin: 0 0 2rem;
}

.dd-story .dd-btn--ghost {
	color: var(--dd-porcelain) !important;
	border-color: var(--dd-porcelain) !important;
}

.dd-story .dd-btn--ghost:hover {
	background: var(--dd-porcelain) !important;
	color: var(--dd-ink) !important;
}

/* -------------------------------------------------------------------------- */
/* Footer                                                                     */
/* -------------------------------------------------------------------------- */

body.dd-theme .footer-wrapper,
body.dd-theme .footer-1 {
	background: var(--dd-porcelain) !important;
	border-top: 1px solid var(--dd-line);
}

body.dd-theme .footer-2,
body.dd-theme .absolute-footer {
	background: var(--dd-ink) !important;
	color: rgba(248, 244, 239, 0.7) !important;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
}

body.dd-theme .footer-2 a,
body.dd-theme .absolute-footer a {
	color: var(--dd-porcelain);
}

body.dd-theme .widget-title,
body.dd-theme .footer-1 h3,
body.dd-theme .footer-1 .widget-title {
	font-family: var(--dd-font-display);
	font-weight: 500;
	font-size: 1.25rem;
	letter-spacing: 0.04em;
}

/* -------------------------------------------------------------------------- */
/* Motion                                                                     */
/* -------------------------------------------------------------------------- */

.dd-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.9s var(--dd-ease), transform 0.9s var(--dd-ease);
}

.dd-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@keyframes dd-fade-up {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

body.dd-home .banner .text-box,
body.dd-home .banner h1,
body.dd-home .banner h2 {
	animation: dd-fade-up 1s var(--dd-ease) both;
}

body.dd-home .banner p {
	animation: dd-fade-up 1s var(--dd-ease) 0.15s both;
}

body.dd-home .banner .button {
	animation: dd-fade-up 1s var(--dd-ease) 0.28s both;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.dd-reveal,
	body.dd-home .banner .text-box,
	body.dd-home .banner h1,
	body.dd-home .banner h2,
	body.dd-home .banner p,
	body.dd-home .banner .button,
	body.dd-theme .product-small .box-image img {
		animation: none !important;
		transition: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/* -------------------------------------------------------------------------- */
/* Cart / checkout polish                                                     */
/* -------------------------------------------------------------------------- */

body.dd-theme .woocommerce-cart .cart_totals,
body.dd-theme .woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--dd-white);
	border: 1px solid var(--dd-line);
	padding: 1.5rem;
}

body.dd-theme .woocommerce form .form-row input.input-text,
body.dd-theme .woocommerce form .form-row textarea,
body.dd-theme .woocommerce form .form-row select {
	border-radius: 0;
	border-color: var(--dd-line);
	min-height: 46px;
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                 */
/* -------------------------------------------------------------------------- */

@media (max-width: 849px) {
	.dd-trust__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		text-align: center;
	}

	.dd-occasions__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 549px) {
	.dd-occasions__grid {
		grid-template-columns: 1fr;
	}

	body.dd-theme #logo img {
		max-height: 42px !important;
	}
}
