/* ==========================================================================
   House of Submission — Design System
   Premium, private, dark, editorial. Feminine authority, modern product
   quality. Avoids a corporate blue/SaaS look.
   ========================================================================== */

:root {
	--hos-near-black: #02080A;
	--hos-emerald: #071D18;
	--hos-green-2: #0B2329;
	--hos-green-3: #102A24;
	--hos-cream: #F5F1E8;
	--hos-cream-bright: #FFF7E1;
	--hos-white: #FFFFFF;
	--hos-gold: #D4AF37;
	--hos-gold-bright: #FFDE2F;
	--hos-font-serif: 'Cormorant Garamond', Georgia, serif;
	--hos-font-sans: 'Jost', -apple-system, BlinkMacSystemFont, sans-serif;
	--hos-container: 800px;
	--hos-container-wide: 1200px;
}

* { box-sizing: border-box; }

body.hos-theme {
	background: var(--hos-near-black);
	color: var(--hos-cream);
	font-family: var(--hos-font-sans);
	font-weight: 300;
	line-height: 1.7;
}

.hos-theme h1, .hos-theme h2, .hos-theme h3, .hos-theme h4 {
	font-family: var(--hos-font-serif);
	font-weight: 600;
	color: var(--hos-white);
	line-height: 1.2;
	letter-spacing: 0.01em;
}

.hos-theme a { color: var(--hos-gold); text-decoration: none; }
.hos-theme a:hover { color: var(--hos-gold-bright); }

/* --------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------- */
.hos-section { padding: 6rem 2rem; }
.hos-section-inner { max-width: var(--hos-container); margin: 0 auto; }
.hos-section-inner.is-wide { max-width: var(--hos-container-wide); }

.hos-section-black { background: var(--hos-near-black); }
.hos-section-emerald { background: var(--hos-emerald); }
.hos-section-green2 { background: var(--hos-green-2); }
.hos-section-green3 { background: var(--hos-green-3); }

.hos-eyebrow {
	font-family: var(--hos-font-sans);
	color: var(--hos-gold);
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 0.8rem;
	font-weight: 500;
	margin-bottom: 0.75rem;
}

.hos-section-heading {
	font-size: clamp(2rem, 4vw, 3.2rem);
	margin: 0 0 1.5rem;
}

.hos-section-lede {
	font-size: 1.15rem;
	color: var(--hos-cream);
	max-width: 62ch;
	opacity: 0.9;
}

.hos-cards-row { margin-top: 2.5rem; }

/* --------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------- */
.hos-btn, .wp-block-button__link {
	display: inline-block;
	padding: 0.9rem 2.1rem;
	border-radius: 3px;
	font-family: var(--hos-font-sans);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.82rem;
	cursor: pointer;
	border: 1px solid transparent;
	transition: all 0.2s ease;
}
.wp-block-button.is-style-hos-gold .wp-block-button__link,
.hos-btn-gold {
	background: var(--hos-gold);
	color: var(--hos-near-black) !important;
}
.wp-block-button.is-style-hos-gold .wp-block-button__link:hover,
.hos-btn-gold:hover { background: var(--hos-gold-bright); }

.wp-block-button.is-style-hos-outline .wp-block-button__link,
.hos-btn-outline {
	background: transparent;
	border-color: var(--hos-gold);
	color: var(--hos-gold) !important;
}
.wp-block-button.is-style-hos-outline .wp-block-button__link:hover,
.hos-btn-outline:hover { background: rgba(212,175,55,0.1); }

.hos-btn-ghost {
	background: transparent;
	border-color: rgba(245,241,232,0.3);
	color: var(--hos-cream);
}
.hos-btn-ghost:hover { border-color: var(--hos-cream); }

/* --------------------------------------------------------------------
   Header
   -------------------------------------------------------------------- */
.hos-header {
	background: var(--hos-near-black);
	border-bottom: 1px solid rgba(212,175,55,0.2);
	position: sticky;
	top: 0;
	z-index: 100;
}
.hos-header-inner {
	max-width: var(--hos-container-wide);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.1rem 2rem;
	gap: 2rem;
}

.hos-header-logo .hos-logo-text {
	font-family: var(--hos-font-serif);
	font-size: 1.4rem;
	letter-spacing: 0.08em;
	color: var(--hos-white);
	text-decoration: none;
}

/* Logo aspect-ratio fix: height may be constrained, width always auto.
   !important guards against Astra/browser default img sizing rules that
   would otherwise stretch the logo. */
.hos-header-logo,
.hos-header-logo a.custom-logo-link,
.hos-header-logo a.hos-logo-link {
	display: flex;
	align-items: center;
	max-width: 220px;
}
.hos-header-logo img,
.hos-header-logo img.custom-logo,
.hos-header-logo a.custom-logo-link img,
.hos-header-logo img.hos-header-logo-img,
.ast-site-identity img,
.ast-site-identity img.custom-logo,
.site-header img.custom-logo,
#masthead img.custom-logo,
a.custom-logo-link img,
img.custom-logo,
img.hos-header-logo-img {
	height: auto !important;
	width: auto !important;
	max-height: 46px !important;
	max-width: 220px !important;
	object-fit: contain !important;
}

.hos-primary-menu {
	display: flex;
	align-items: center;
	gap: 1.9rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.hos-primary-menu li a {
	color: var(--hos-cream);
	font-size: 0.92rem;
	letter-spacing: 0.02em;
}
.hos-primary-menu li a:hover { color: var(--hos-gold); }
.hos-primary-menu li.hos-nav-join a {
	background: var(--hos-gold);
	color: var(--hos-near-black);
	padding: 0.55rem 1.3rem;
	border-radius: 3px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.78rem;
}
.hos-primary-menu li.hos-nav-join a:hover { background: var(--hos-gold-bright); }

.hos-header-actions { display: flex; align-items: center; gap: 1.1rem; }

.hos-account-icon {
	color: var(--hos-cream);
	display: inline-flex;
	opacity: 0.85;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
}
.hos-account-icon:hover { opacity: 1; color: var(--hos-gold); }

.hos-account-menu { position: relative; display: inline-flex; }
.hos-account-dropdown {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	position: absolute;
	top: calc(100% + 14px);
	right: 0;
	min-width: 170px;
	background: var(--hos-emerald);
	border: 1px solid rgba(212,175,55,0.3);
	border-radius: 6px;
	box-shadow: 0 12px 28px rgba(0,0,0,0.45);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
	z-index: 200;
}
.hos-account-menu.is-open .hos-account-dropdown {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.hos-account-dropdown li a {
	display: block;
	padding: 0.55rem 1.1rem;
	color: var(--hos-cream);
	font-size: 0.92rem;
	white-space: nowrap;
}
.hos-account-dropdown li a:hover { background: rgba(212,175,55,0.12); color: var(--hos-gold); }

.hos-mobile-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 6px;
}
.hos-mobile-toggle span { width: 22px; height: 2px; background: var(--hos-cream); }

.hos-mobile-menu {
	display: none;
	background: var(--hos-emerald);
	padding: 1rem 2rem;
}
.hos-mobile-menu.is-open { display: block; }
.hos-mobile-menu-list { list-style: none; margin: 0; padding: 0; }
.hos-mobile-menu-list li { border-bottom: 1px solid rgba(245,241,232,0.08); }
.hos-mobile-menu-list li a { display: block; padding: 0.9rem 0; color: var(--hos-cream); }

/* --------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------- */
.hos-hero {
	min-height: 88vh;
	display: flex;
	align-items: center;
	background: linear-gradient(180deg, rgba(2,8,10,0.5) 0%, rgba(2,8,10,0.9) 100%), var(--hos-near-black);
	background-size: cover;
	background-position: center;
	text-align: center;
}
.hos-hero .hos-section-inner { display: flex; flex-direction: column; align-items: center; }
.hos-hero .hos-section-lede { margin: 0 auto 2rem; }

/* --------------------------------------------------------------------
   Character cards (House Women)
   -------------------------------------------------------------------- */
.hos-character-card {
	background: var(--hos-green-2);
	border-radius: 10px;
	overflow: hidden;
	height: 100%;
}
.hos-character-card .hos-editable-image img {
	width: 100%;
	aspect-ratio: 3/4;
	object-fit: cover;
	display: block;
}
.hos-character-card-body { padding: 1.6rem; }
.hos-character-card-body h3 { font-size: 1.5rem; margin: 0 0 0.4rem; }
.hos-character-descriptor {
	color: var(--hos-gold);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 0.9rem;
}

/* --------------------------------------------------------------------
   Membership cards
   -------------------------------------------------------------------- */
.hos-membership-card {
	background: var(--hos-green-2);
	border: 1px solid rgba(212,175,55,0.25);
	border-radius: 10px;
	padding: 2.2rem;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.hos-membership-card h3 { font-size: 1.6rem; margin: 0 0 0.3rem; }
.hos-membership-tagline {
	font-style: italic;
	color: var(--hos-gold);
	margin-bottom: 1.2rem;
}
.hos-membership-card ul { margin: 0 0 1.5rem; padding-left: 1.2rem; }
.hos-membership-card li { margin-bottom: 0.5rem; }
.hos-membership-price { font-size: 1.4rem; color: var(--hos-white); margin-bottom: 1rem; }

/* --------------------------------------------------------------------
   Status track
   -------------------------------------------------------------------- */
.hos-status-track {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1.2rem;
	margin-top: 2.5rem;
}
.hos-status-badge {
	background: var(--hos-green-2);
	border-radius: 10px;
	padding: 1.8rem 1.2rem;
	text-align: center;
}
.hos-status-roman { font-family: var(--hos-font-serif); font-size: 1.8rem; color: var(--hos-gold); }
.hos-status-name { font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; margin: 0.4rem 0 0.2rem; }
.hos-status-subtitle { font-size: 0.85rem; opacity: 0.75; }
.hos-status-points { font-size: 0.78rem; color: var(--hos-gold); margin-top: 0.5rem; }

/* --------------------------------------------------------------------
   Trust / 3-column feature grid
   -------------------------------------------------------------------- */
.hos-trust-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2.5rem;
}
.hos-trust-card {
	background: var(--hos-green-2);
	border-radius: 10px;
	padding: 2rem;
}
.hos-trust-card h3 { font-size: 1.25rem; margin: 0 0 0.7rem; }

/* --------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------- */
.hos-form input[type="text"],
.hos-form input[type="email"],
.hos-form input[type="password"],
.hos-form input[type="number"],
.hos-form textarea,
.hos-form select {
	width: 100%;
	padding: 0.8rem 1rem;
	background: var(--hos-near-black);
	border: 1px solid rgba(245,241,232,0.25);
	border-radius: 4px;
	color: var(--hos-cream);
	font-family: var(--hos-font-sans);
	margin-bottom: 1rem;
}
.hos-form label { display: block; margin-bottom: 0.4rem; font-size: 0.88rem; }
.hos-form-note { font-size: 0.85rem; opacity: 0.75; }
.hos-form-card {
	background: var(--hos-green-2);
	border-radius: 10px;
	padding: 2rem;
}

/* --------------------------------------------------------------------
   Dashboard / member area
   -------------------------------------------------------------------- */
.hos-dashboard-welcome { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.hos-dashboard-chat-cta { margin-left: auto; }
.hos-dashboard-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.hos-dashboard-card { background: var(--hos-green-2); border-radius: 10px; padding: 1.6rem; }
.hos-progress-bar { background: rgba(245,241,232,0.1); border-radius: 20px; height: 10px; overflow: hidden; margin: 0.8rem 0; }
.hos-progress-bar-fill { background: var(--hos-gold); height: 100%; }
.hos-status-pill { display: inline-block; padding: 0.3rem 0.9rem; border-radius: 20px; background: rgba(212,175,55,0.15); color: var(--hos-gold); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; }

.hos-task-list { list-style: none; margin: 0; padding: 0; }
.hos-task-item { background: var(--hos-green-2); border-radius: 8px; padding: 1.2rem 1.4rem; margin-bottom: 0.9rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.hos-task-points { color: var(--hos-gold); font-weight: 500; }
.hos-task-status-complete { opacity: 0.6; }

/* --------------------------------------------------------------------
   Chat
   -------------------------------------------------------------------- */
.hos-chat-consent .hos-consent-checkbox { display: flex; align-items: flex-start; gap: 0.6rem; margin: 1.2rem 0; }
.hos-chat-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-bottom: 2rem; }
.hos-chat-interface { background: var(--hos-green-2); border-radius: 10px; padding: 1.5rem; }
.hos-chat-placeholder { border: 1px dashed rgba(212,175,55,0.35); border-radius: 8px; padding: 3rem 1.5rem; text-align: center; opacity: 0.8; }
@media (max-width: 700px) { .hos-chat-meta { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------
   Shop / gifts grid
   -------------------------------------------------------------------- */
.hos-shop-grid, .hos-gifts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; margin-top: 2rem; }
.hos-product-card { background: var(--hos-green-2); border-radius: 10px; overflow: hidden; }
.hos-product-card img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.hos-product-card-body { padding: 1.3rem; }
.hos-product-price { color: var(--hos-gold); font-weight: 500; margin: 0.3rem 0 1rem; }

/* --------------------------------------------------------------------
   Cookie banner
   -------------------------------------------------------------------- */
.hos-cookie-banner {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	background: rgba(7,29,24,0.97);
	backdrop-filter: blur(6px);
	border-top: 1px solid rgba(212,175,55,0.3);
	padding: 1.2rem 2rem;
	z-index: 999;
	display: none;
}
.hos-cookie-banner.is-visible { display: block; }
.hos-cookie-banner-inner {
	max-width: var(--hos-container-wide);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.hos-cookie-banner-text { flex: 1 1 400px; font-size: 0.9rem; }
.hos-cookie-banner-text p { margin: 0.3rem 0 0; opacity: 0.85; }
.hos-cookie-banner-actions { display: flex; gap: 0.7rem; flex-wrap: wrap; }
.hos-cookie-settings-panel {
	max-width: var(--hos-container-wide);
	margin: 1rem auto 0;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
	border-top: 1px solid rgba(245,241,232,0.1);
	padding-top: 1rem;
}
.hos-cookie-settings-panel label { display: flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; }

/* --------------------------------------------------------------------
   FAQ accordion (core/details)
   -------------------------------------------------------------------- */
.hos-theme .wp-block-details {
	background: var(--hos-green-2);
	border-radius: 8px;
	padding: 1.2rem 1.5rem;
	margin-bottom: 1rem;
}
.hos-theme .wp-block-details summary { font-weight: 500; cursor: pointer; color: var(--hos-white); }
.hos-theme .wp-block-details p { margin: 0.8rem 0 0; opacity: 0.9; }

/* --------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.hos-status-track { grid-template-columns: repeat(3, 1fr); }
	.hos-trust-grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.hos-dashboard-grid { grid-template-columns: 1fr; }
	.hos-shop-grid, .hos-gifts-grid { grid-template-columns: repeat(2, 1fr); }
	.hos-footer-columns { grid-template-columns: repeat(2, 1fr); }
	.hos-header-logo img, .hos-header-logo img.custom-logo, .hos-header-logo img.hos-header-logo-img, .ast-site-identity img, a.custom-logo-link img, img.custom-logo, img.hos-header-logo-img { max-height: 40px !important; }
}

@media (max-width: 860px) {
	.hos-primary-nav { display: none; }
	.hos-mobile-toggle { display: flex; }
	.hos-status-track { grid-template-columns: repeat(2, 1fr); }
	.hos-hero { min-height: 78vh; }
}

@media (max-width: 600px) {
	.hos-header-inner { padding: 0.9rem 1.25rem; }
	.hos-header-logo img, .hos-header-logo img.custom-logo, .hos-header-logo img.hos-header-logo-img, .ast-site-identity img, a.custom-logo-link img, img.custom-logo, img.hos-header-logo-img { max-height: 34px !important; }
	.hos-section { padding: 3.5rem 1.25rem; }
	.hos-status-track { grid-template-columns: 1fr 1fr; }
	.hos-shop-grid, .hos-gifts-grid { grid-template-columns: 1fr; }
	.hos-footer-columns { grid-template-columns: 1fr; gap: 2rem; }
	.hos-cookie-banner-inner { flex-direction: column; align-items: flex-start; }
	.hos-cookie-banner-actions { width: 100%; }
	.hos-cookie-banner-actions .hos-btn { flex: 1 1 auto; }
}

/* --------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------- */
.hos-footer { background: var(--hos-emerald); padding: 4rem 2rem 2rem; border-top: 1px solid rgba(212,175,55,0.15); }
.hos-footer-inner { max-width: var(--hos-container-wide); margin: 0 auto; }
.hos-footer-columns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-bottom: 3rem; }
.hos-footer-col h4 { font-size: 1rem; margin: 0 0 1rem; color: var(--hos-gold); text-transform: uppercase; letter-spacing: 0.08em; }
.hos-footer-col ul { list-style: none; margin: 0; padding: 0; }
.hos-footer-col li { margin-bottom: 0.6rem; }
.hos-footer-col a { color: var(--hos-cream); opacity: 0.85; font-size: 0.9rem; }
.hos-footer-col a:hover { opacity: 1; color: var(--hos-gold); }
.hos-footer-bottom { border-top: 1px solid rgba(245,241,232,0.1); padding-top: 1.5rem; font-size: 0.85rem; opacity: 0.6; text-align: center; }
