/*
Theme Name:        Elysian
Theme URI:         https://elysianclothing.com/
Author:            Antigravity / Sithew
Author URI:        https://elysianclothing.com/
Description:       A luxury boutique WooCommerce theme with a champagne/ink design language. Built on Bootstrap 5 with refined typography (Cormorant Garamond + Jost) and a focus on conversion-optimized eCommerce experiences.
Version:           1.6.0
Tested up to:      6.5
Requires at least: 6.0
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       elysian
Tags:              e-commerce, two-columns, right-sidebar, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, full-width-template, theme-options, block-styles, wide-blocks
*/

/* =========================================================
   This file holds theme metadata and WordPress baseline
   accessibility / block-editor classes only.

   All design styles live in:
     - assets/css/style.css       (base components)
     - assets/css/responsive.css  (breakpoint overrides)
     - assets/css/luxe.css        (luxury overlay + design tokens)

   This stylesheet is enqueued LAST so it can hold any
   small WordPress-specific tweaks added in later phases.
   ========================================================= */

/* ---------- Accessibility ---------- */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: #fafaf7;
    clip: auto !important;
    -webkit-clip-path: none;
    clip-path: none;
    color: #1a1a1a;
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

.skip-link:focus {
    outline: 2px solid #a8845c;
    outline-offset: 2px;
}

/* ---------- Core alignment classes ---------- */
.alignleft   { float: left;  margin-right: 1.5em; margin-bottom: 1em; }
.alignright  { float: right; margin-left:  1.5em; margin-bottom: 1em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; margin-bottom: 1em; }
.alignwide   { max-width: 1100px; }
.alignfull   { max-width: 100%; }

/* ---------- Image captions ---------- */
.wp-caption { max-width: 100%; margin-bottom: 1.5em; }
.wp-caption img[class*="wp-image-"] { display: block; margin: 0 auto; max-width: 100%; height: auto; }
.wp-caption-text,
.wp-caption .wp-caption-text {
    font-size: 0.875rem;
    color: #6e6e6e;
    text-align: center;
    margin: 0.5em 0 0;
    font-style: italic;
}

/* ---------- Galleries ---------- */
.gallery-caption { display: block; }
.gallery { margin-bottom: 1.5em; }
.gallery-item   { display: inline-block; text-align: center; vertical-align: top; width: 100%; }
.gallery-columns-2 .gallery-item { max-width: 50%; }
.gallery-columns-3 .gallery-item { max-width: 33.33%; }
.gallery-columns-4 .gallery-item { max-width: 25%; }
.gallery-columns-5 .gallery-item { max-width: 20%; }

/* ---------- Sticky posts ---------- */
.bypostauthor { display: block; }

/* ---------- Clearfix ---------- */
.clear:before, .clear:after,
.entry-content:before, .entry-content:after,
.comment-content:before, .comment-content:after,
.site-content:before, .site-content:after {
    content: "";
    display: table;
    table-layout: fixed;
}
.clear:after, .entry-content:after, .comment-content:after, .site-content:after { clear: both; }

/* ---------- Block editor wide / full alignments ---------- */
.entry-content .alignwide { margin-left: auto; margin-right: auto; }
.entry-content .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; }

/* =========================================================
   Mega menu (walker adds .mega-menu to the dropdown when the
   top-level item has a `mega-menu` CSS class). Full-width panel
   with auto columns; collapses to a normal stacked list on mobile.
   ========================================================= */
.navbar-nav .nav-item.dropdown .dropdown-menu.mega-menu {
	width: 100%;
	max-width: 1140px;
	left: 50%;
	transform: translateX(-50%);
	padding: 28px 30px;
	column-gap: 30px;
	-webkit-columns: 4;
	-moz-columns: 4;
	columns: 4;
}
.navbar-nav .dropdown-menu.mega-menu > .nav-item,
.navbar-nav .dropdown-menu.mega-menu > li {
	-webkit-column-break-inside: avoid;
	break-inside: avoid;
	display: block;
	margin-bottom: 14px;
}
.navbar-nav .dropdown-menu.mega-menu .mega-menu-title {
	font-family: var(--lux-serif, inherit);
	font-weight: 600;
	letter-spacing: .02em;
	pointer-events: none;
	opacity: .85;
}
.navbar-nav .dropdown-menu.mega-menu .dropdown-menu {
	position: static;
	float: none;
	border: 0;
	box-shadow: none;
	padding: 6px 0 0;
	background: transparent;
}

/* Mobile: MeanMenu handles the off-canvas drawer; neutralise the
   desktop mega columns so children stack normally. */
@media (max-width: 991px) {
	.navbar-nav .nav-item.dropdown .dropdown-menu.mega-menu {
		columns: 1;
		max-width: none;
		left: 0;
		transform: none;
		padding: 0;
	}
}

/* ============================================================
   404 page — uses the theme's existing design primitives
   (page-title, .default-btn, luxe typography). These rules only
   add spacing/centering; no design tokens are introduced.
   ============================================================ */
.error-404-area .error-404-content {
	max-width: 720px;
	margin: 0 auto;
}
.error-404-area .error-404-content img {
	max-width: 100%;
	height: auto;
	margin-bottom: 30px;
}
.error-404-area .error-404-content h2 {
	margin-bottom: 15px;
}
.error-404-area .error-404-content p {
	max-width: 560px;
	margin: 0 auto 25px;
}
.error-404-area .error-404-content .search-form,
.error-404-area .error-404-content form[role="search"] {
	max-width: 460px;
	margin: 0 auto 25px;
}

/* ============================================================
   Responsive hardening — theme-added / WC-dynamic elements only.
   The approved design CSS (assets/css/style.css|responsive.css|
   luxe.css) is unchanged and remains byte-identical to the static
   build. These rules only protect elements that did not exist in the
   static markup (dynamic trending product, variation price block,
   search grid, combined login/register) from overflow/alignment
   regressions. No colors, fonts, or approved layouts are altered.
   ============================================================ */

/* Dynamic "Top Trending" widget now wraps its image in a link. */
.woocommerce-widget-area .aside-trending-widget .aside-trending-products a {
	display: block;
}
.woocommerce-widget-area .aside-trending-widget .aside-trending-products .trending-cat {
	display: block;
}

/* Variation price / availability sync into .price / .products-info — hide duplicates in the form. */
.variations_form .single_variation_wrap .woocommerce-variation {
	margin-bottom: 0;
}
body.elysian-single-product .variations_form .woocommerce-variation-price,
body.elysian-single-product .variations_form .woocommerce-variation-availability,
body.elysian-single-product .variations_form .woocommerce-variation-description {
	display: none !important;
}
/* Keep the hidden proxy <select> table out of flow on every breakpoint. */
.variations_form table.variations {
	display: none !important;
}

/* Search results reuse the blog grid but may include product cards;
   give product cards the same bottom rhythm as blog cards there. */
.blog-area .products-box {
	margin-bottom: 30px;
}

/* Combined login + "New Customer" columns: even spacing once they
   stack below the lg breakpoint. */
@media (max-width: 991px) {
	.login-content {
		margin-bottom: 30px;
	}
}

/* 404 search form shouldn't overflow narrow viewports. */
@media (max-width: 480px) {
	.error-404-area .error-404-content .search-form,
	.error-404-area .error-404-content form[role="search"] {
		max-width: 100%;
	}
}

/* Disabled / unavailable variation swatch pills (driven by WooCommerce
   option availability — see elysian-woo.js reflectSwatchStates). */
.products-color-switch li.disabled,
.products-size-wrapper li.disabled {
	opacity: 0.4;
	pointer-events: none;
	position: relative;
}
.products-size-wrapper li.disabled a {
	text-decoration: line-through;
}
