/**
 * MY OMONYMA — cinematic portal + editorial "worlds" journey.
 * Dashboard root only (see the is_wc_endpoint_url() guard in
 * functions.php) — Orders/Addresses/etc. keep the plain account.css
 * look, untouched. Chosen concept: "Signature Downscale" — the
 * hero name shrinks and travels up into the small persistent
 * signature as the visitor scrolls, so the two feel like one mark
 * at two different sizes, not two separate elements.
 */
:root{
	--omh-personal-tint: #B5734A; /* neutral OMONYMA terracotta default — becomes the user's own quiz colour once that result is saved (not yet — see dashboard.php header comment) */
}

/* Two nested wrappers both constrain width for normal editorial pages —
   correct everywhere else, but together they were squeezing the
   full-bleed dashboard in from both sides. Both PHP classes already
   exist (page.php, my-account.php); these are their matching overrides. */
.omonyma-entry--account-dashboard{ max-width:none; margin:0; padding:0; }
.omh-account-layout--dashboard{ display:block; max-width:none; margin:0; padding:0; }
.omh-account-layout--dashboard .omh-account-content{
	/* WooCommerce's own default stylesheet floats .woocommerce-MyAccount-content
	   right at a partial width (its fallback layout, predating account.css's
	   grid). account.css already neutralises this INSIDE the normal grid —
	   but the dashboard skips that grid entirely, so the float was still
	   winning here and squeezing everything into a narrow right-hand column. */
	float:none; width:100%; min-width:0;
}

.omh-portal-wrap{ position:fixed; inset:0; z-index:9999; background:var(--color-ink); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.omh-portal-circle{ border-radius:50%; width:130px; height:130px; background:radial-gradient(circle, var(--omh-personal-tint) 0%, color-mix(in srgb, var(--omh-personal-tint) 60%, transparent) 55%, transparent 75%); }
.omh-portal-text{ position:absolute; color:var(--color-bg); font-family:var(--font-display); font-style:italic; font-weight:400; font-size:clamp(1.3rem, 1rem + 1.5vw, 1.9rem); text-align:center; padding:0 2rem; opacity:0; }

.omh-signature{ position:fixed; top:2rem; left:0; right:0; text-align:center; font-family:var(--font-ui); font-size:0.68rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--color-ink-soft); opacity:0; z-index:5; }

.omh-arrival{ height:100vh; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.omh-arrival-glow{ position:absolute; width:70vmax; height:70vmax; border-radius:50%; background:radial-gradient(circle, color-mix(in srgb, var(--omh-personal-tint) 16%, transparent) 0%, transparent 70%); filter:blur(40px); animation:omhDriftSlow 26s ease-in-out infinite; }
@keyframes omhDriftSlow{ 0%,100%{ transform:translate(-4%,-3%) scale(1); } 50%{ transform:translate(4%,3%) scale(1.08); } }
.omh-hero-name{ font-family:var(--font-display); font-weight:400; font-size:clamp(4.5rem, 3rem + 10vw, 10rem); line-height:0.9; opacity:0; position:relative; z-index:6; transform-origin:center 2rem; margin:0; }
.omh-hero-sub{ font-family:var(--font-display); font-style:italic; font-size:clamp(1rem, 0.9rem + 0.4vw, 1.25rem); color:var(--color-ink-soft); margin-top:1.6rem; opacity:0; position:relative; z-index:2; }
.omh-cue-line{ position:absolute; bottom:3rem; left:50%; transform:translateX(-50%); width:1px; height:44px; background:var(--color-ink-soft); opacity:0; }
.omh-cue-line.animate{ animation:omhCuePulse 2.4s ease-in-out infinite; }
@keyframes omhCuePulse{ 0%,100%{opacity:0.25;} 50%{opacity:0.75;} }

.omh-world{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:4rem 2rem; position:relative; border-top:1px solid rgba(26,26,24,0.08); }
.omh-world .num{ font-family:var(--font-ui); font-size:0.72rem; letter-spacing:0.15em; color:var(--color-ink-soft); margin-bottom:1.6rem; }
.omh-world h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(2.6rem, 2rem + 4vw, 5.5rem); line-height:0.95; margin-bottom:1.6rem; }
.omh-world p{ font-size:0.95rem; color:var(--color-ink-soft); max-width:420px; line-height:1.7; margin-bottom:1.2rem; }
.omh-world .peek{ font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--omh-personal-tint); text-decoration:none; display:inline-block; margin-top:0.4rem; background:none; border:none; padding:0; cursor:pointer; }
.omh-world .omh-peek-soon{ color:var(--color-ink-soft); }
.omh-world.tinted{ background:color-mix(in srgb, var(--omh-personal-tint) 6%, var(--color-bg)); }
.omh-practice-teacher-name{ font-size:0.9rem !important; color:var(--color-ink-soft) !important; margin-bottom:0.6rem !important; }
.omh-practice-index{ margin-top:1rem; font-size:0.82rem; color:var(--color-ink-soft); }
.omh-practice-index a{ color:var(--color-ink-soft); text-decoration:none; }
.omh-practice-index a.is-current{ color:var(--color-ink); }
.omh-practice-index .sep{ margin:0 0.5rem; }
.omh-details-links{ display:flex; gap:1.6rem; flex-wrap:wrap; justify-content:center; margin-top:0.6rem; }

/* each section's children reveal in a short, deliberate sequence, not as one block */
.omh-reveal{ opacity:0; }
.omh-reveal > *{ opacity:0; transform:translateY(20px); transition:opacity 0.8s ease, transform 0.8s ease; }
.omh-reveal.in{ opacity:1; }
.omh-reveal.in > *{ opacity:1; transform:translateY(0); }
.omh-reveal.in > *:nth-child(1){ transition-delay:0s; }
.omh-reveal.in > *:nth-child(2){ transition-delay:0.12s; }
.omh-reveal.in > *:nth-child(3){ transition-delay:0.24s; }
.omh-reveal.in > *:nth-child(4){ transition-delay:0.36s; }
.omh-reveal.in > *:nth-child(5){ transition-delay:0.48s; }

.omh-closing-divider{ min-height:40vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.4rem; }
.omh-closing-divider .cd-line{ width:1px; height:60px; background:rgba(26,26,24,0.2); }
.omh-closing-divider p{ font-family:var(--font-display); font-style:italic; font-size:1.05rem; color:var(--color-ink-soft); opacity:0; transition:opacity 1s ease; }
.omh-closing-divider p.in{ opacity:1; }

.omh-world.closing h2{ font-size:clamp(2rem, 1.6rem + 2.5vw, 3.4rem); }
.omh-world.closing .num{ color:var(--color-ink-soft); }

@media (max-width:900px){
	.omh-hero-name{ font-size:clamp(3.2rem, 2.2rem + 9vw, 5.5rem); }
	.omh-world h2{ font-size:clamp(2rem, 1.6rem + 5vw, 3.4rem); }
	.omh-details-links{ flex-direction:column; gap:0.9rem; }
}

@media (prefers-reduced-motion: reduce){
	.omh-arrival-glow, .omh-cue-line.animate{ animation:none; }
}

/* ===== Your Rewards — breathing circle as progress ring ===== */
.omh-rewards-circle-wrap{ position:relative; width:220px; height:220px; margin:0 auto 2.4rem; }
.omh-rewards-circle-glow{
	position:absolute; inset:18px; border-radius:50%;
	background:radial-gradient(circle, var(--omh-personal-tint) 0%, color-mix(in srgb, var(--omh-personal-tint) 55%, transparent) 55%, transparent 75%);
	animation:omhRewardsBreathe 5s ease-in-out infinite;
}
@keyframes omhRewardsBreathe{ 0%,100%{ transform:scale(0.94); opacity:0.85; } 50%{ transform:scale(1.02); opacity:1; } }
.omh-rewards-progress-ring{ position:absolute; inset:0; transform:rotate(-90deg); }
.omh-rewards-progress-ring circle{ fill:none; stroke-width:2; }
.omh-rewards-progress-ring .track{ stroke:rgba(26,26,24,0.1); }
.omh-rewards-progress-ring .fill{ stroke:var(--omh-personal-tint); stroke-linecap:round; transition:stroke-dashoffset 1.2s cubic-bezier(0.65,0,0.35,1); }
.omh-rewards-circle-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.omh-rewards-circle-center .pts{ font-family:var(--font-display); font-weight:400; font-size:3.2rem; line-height:1; color:var(--color-ink); }
.omh-rewards-circle-center .lbl{ font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--color-ink-soft); margin-top:0.4rem; }

.omh-rewards-to-go{ font-size:0.95rem; color:var(--color-ink); margin-bottom:0.5rem; }
.omh-rewards-milestone{ font-size:0.78rem; letter-spacing:0.03em; color:var(--color-ink-soft); text-transform:uppercase; margin-bottom:1.4rem; }
.omh-rewards-whisper{ font-family:var(--font-display); font-style:italic; font-size:1rem; color:var(--color-ink-soft); }
.omh-rewards-waiting{ font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--color-ink-soft); margin-bottom:1.6rem; }
.omh-rewards-value{ font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--omh-personal-tint); margin-bottom:1.8rem; }
.omh-rewards-cta{ font-family:var(--font-ui); }

/* Minimum-basket line — clearly present, but deliberately quiet: smaller,
   lower-contrast, no box/badge/icon, so it never competes with the
   reward amount above it. */
.omh-rewards-minimum{ font-size:0.72rem; color:var(--color-ink-soft); opacity:0.75; margin-top:-0.6rem; margin-bottom:1rem; }

.omh-rewards-terms-link{ display:block; margin-top:2rem; font-size:0.68rem; letter-spacing:0.04em; color:var(--color-ink-soft); opacity:0.6; text-decoration:underline; background:none; border:none; padding:0; font-family:inherit; cursor:pointer; }

.omh-rewards-history{ margin-top:3.5rem; width:100%; max-width:420px; }
.omh-rewards-history summary{ font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--color-ink-soft); cursor:pointer; list-style:none; text-align:center; }
.omh-rewards-history summary::-webkit-details-marker{ display:none; }
.omh-rewards-history-list{ margin-top:1.4rem; text-align:left; }
.omh-rewards-history-row{ display:flex; justify-content:space-between; gap:1rem; padding:0.7rem 0; border-bottom:1px solid rgba(26,26,24,0.08); font-size:0.82rem; }
.omh-rewards-history-row .delta{ font-family:var(--font-ui); font-weight:500; min-width:3.5rem; }
.omh-rewards-history-row .delta.pos{ color:#5C7A5F; }
.omh-rewards-history-row .delta.neg{ color:var(--omh-personal-tint); }
.omh-rewards-history-row .desc{ flex:1; color:var(--color-ink-soft); }

/* Quiet "+30 points" note after a first-time colour-quiz award —
   fades in/out, never stacks with anything, no badges/confetti. */
.omh-quiz-points-note{
	display:block; margin-top:0.6rem; font-family:var(--font-ui); font-size:0.72rem; letter-spacing:0.06em;
	text-transform:uppercase; color:var(--omh-personal-tint); opacity:0; transition:opacity 0.6s ease;
}
.omh-quiz-points-note.in{ opacity:1; }

/* ===== "Πώς λειτουργεί" — Rewards terms modal =====
   Reuses .omh-cq-overlay / .omh-cq-panel / .omh-cq-close from
   colour-quiz.css verbatim (same fade+scale, same dim backdrop, same
   close button) — only this content-specific styling is new. */
.omh-terms-panel{ max-width:460px; padding:2.6rem 2.2rem; text-align:left; }
.omh-terms-title{ font-family:var(--font-display); font-weight:400; font-size:1.5rem; line-height:1.25; margin:0 0 1.8rem; padding-right:1.5rem; text-align:left; }
.omh-terms-eyebrow{ font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--color-ink-soft); margin:1.6rem 0 0.8rem; }
.omh-terms-eyebrow:first-of-type{ margin-top:0; }
.omh-terms-list{ list-style:none; margin:0; padding:0; }
.omh-terms-list li{ font-size:0.9rem; line-height:1.6; color:var(--color-ink); margin-bottom:0.5rem; }
.omh-terms-list li:last-child{ margin-bottom:0; }
.omh-terms-list b{ font-weight:600; }
.omh-terms-tiers li b{ font-family:var(--font-display); font-weight:400; font-size:1.15rem; }
.omh-terms-notes li{ color:var(--color-ink-soft); font-size:0.84rem; padding-left:0.9rem; position:relative; }
.omh-terms-notes li::before{ content:'\2022'; position:absolute; left:0; color:var(--color-ink-soft); }
.omh-terms-ok{
	display:block; margin:2.2rem auto 0; background:none; border:none; padding:0;
	font-family:var(--font-display); font-style:italic; font-size:1rem; color:var(--omh-personal-tint); cursor:pointer;
}
.omh-terms-ok:hover{ text-decoration:underline; }

@media (max-width:600px){
	.omh-terms-panel{
		/* The quiz's own mobile rule makes .omh-cq-panel a full-screen
		   slide-up sheet (right for a 7-question flow) — this modal is a
		   short, single-screen read, so it stays contained with real
		   margins instead, per the brief. */
		max-width:none !important; max-height:80vh !important; height:auto !important;
		transform:translateY(16px) !important; padding:2.2rem 1.6rem;
	}
	.omh-cq-overlay:has(.omh-terms-panel){ padding:1.2rem; align-items:center; }
	.omh-cq-overlay.is-open:has(.omh-terms-panel) .omh-terms-panel{ transform:translateY(0) !important; }
	.omh-terms-title{ font-size:1.35rem; }
}

/* ===== Your Pieces — dashboard preview grid (3-col, narrow, centered) =====
   .omh-piece-card/.omh-piece-img/.omh-piece-name themselves live in
   account.css, since that loads on every My Account page — this file
   only loads on the dashboard root, but "Η Συλλογή Μου" (full
   collection) is a separate account endpoint that needs those same
   card styles too. */
.omh-pieces-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.6rem; max-width:640px; margin:2.2rem auto 1.8rem; }

@media (max-width:640px){
	.omh-pieces-grid{ grid-template-columns:repeat(2, 1fr); gap:1.1rem; }
}

/* ===== Your Practice — clean duration prefix (Option 2), no duplication ===== */
.omh-practice-duration{ font-size:0.68rem; letter-spacing:0.12em; color:var(--color-ink-soft); margin-bottom:0.6rem; }

/* ===== Practice reading popup — reuses .omh-cq-overlay/.omh-cq-panel/
   .omh-cq-close verbatim (same fade+scale, same dim backdrop, same
   close button) — only this content-specific styling is new. */
.omh-practice-panel{ max-width:600px; padding:2.6rem 2.6rem; text-align:left; }
.omh-practice-modal-eyebrow{ font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--color-ink-soft); margin-bottom:0.8rem; }
.omh-practice-modal-title{ font-family:var(--font-display); font-weight:400; font-size:1.7rem; line-height:1.2; margin:0 0 0.6rem; padding-right:1.5rem; }
.omh-practice-modal-meta{ font-size:0.82rem; color:var(--color-ink-soft); margin-bottom:1.8rem; }
.omh-practice-modal-content{ font-size:0.95rem; line-height:1.75; color:var(--color-ink); }
.omh-practice-modal-content p{ margin:0 0 1.2rem; }
.omh-practice-modal-content p:last-child{ margin-bottom:0; }

.omh-practice-open{ background:none; border:none; padding:0; font:inherit; cursor:pointer; }
.omh-practice-index button.omh-practice-open{ color:var(--color-ink-soft); }
.omh-practice-index button.omh-practice-open.is-current{ color:var(--color-ink); font-weight:600; }

@media (max-width:600px){
	.omh-practice-panel{
		max-width:none !important; max-height:80vh !important; height:auto !important;
		transform:translateY(16px) !important; padding:2.2rem 1.6rem;
	}
	.omh-cq-overlay:has(.omh-practice-panel){ padding:1.2rem; align-items:center; }
	.omh-cq-overlay.is-open:has(.omh-practice-panel) .omh-practice-panel{ transform:translateY(0) !important; }
	.omh-practice-modal-title{ font-size:1.4rem; }
}
