/*
Theme Name: Elythra Studio
Theme URI: https://elythra.studio
Author: Elythra Studio
Author URI: https://elythra.studio
Description: An independent digital studio — a full-screen, portfolio-led theme. A cinematic hero showcases up to 8 properties (name, subtitle, link, and image), configurable in Appearance → Customize → "Elythra — Portfolio". Mobile shows the properties as stacked full-image panels. Dark, editorial, amber accent.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elythra-studio
*/

:root {
  --bg: #0a0a0a; --bg-raised: #121212; --bg-card: #141414;
  --text: #f5f0e8; --muted: #9a948a; --line: #262320;
  --amber: #e8a020; --amber-soft: rgba(232,160,32,0.12);
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-mono: "DM Mono", ui-monospace, monospace;
  --font-body: "Instrument Sans", system-ui, sans-serif;
  --maxw: 1200px; --nav-h: 76px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }
.eyebrow { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber); }
.tag { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
h1, h2, h3 { font-family: var(--font-display); font-weight: 500; margin: 0; line-height: 1.04; }
p { margin: 0 0 1em; }
section[id], div[id] { scroll-margin-top: calc(var(--nav-h) + 8px); }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } .slide { transition: none; } }

/* Header band */
header { position: fixed; top: 0; left: 0; right: 0; z-index: 60; background: rgba(10,10,10,0.92); backdrop-filter: saturate(140%) blur(12px); -webkit-backdrop-filter: saturate(140%) blur(12px); border-bottom: 1px solid var(--line); transition: background 0.3s ease; }
header.solid { background: rgba(10,10,10,0.97); }
.nav { display: flex; align-items: center; justify-content: space-between; height: var(--nav-h); }
.nav-left { display: flex; align-items: center; gap: 18px; }
.brand-tag { font-family: var(--font-display); font-style: italic; font-size: 16px; color: var(--muted); padding-left: 18px; border-left: 1px solid rgba(245,240,232,0.2); line-height: 1.15; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand svg { width: 32px; height: 32px; }
.wordmark { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.28em; line-height: 1.05; }
.wordmark span { display: block; color: var(--muted); }
.nav-contact { font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.06em; color: var(--text); text-transform: uppercase; opacity: 0.85; transition: color 0.2s ease; }
.nav-contact:hover { color: var(--amber); opacity: 1; }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em; padding: 14px 24px; border: 1px solid var(--line); border-radius: 2px; transition: all 0.2s ease; cursor: pointer; }
.btn .arr { transition: transform 0.2s ease; }
.btn:hover .arr { transform: translateX(3px); }
.btn-primary { background: var(--amber); color: #1a1206; border-color: var(--amber); font-weight: 500; }
.btn-primary:hover { background: #f2ad33; }

/* Hero (desktop): full-screen slideshow + column labels */
.hero { position: relative; height: 100vh; min-height: 600px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; border-bottom: 1px solid var(--line); }
.hero-slides { position: absolute; inset: 0; z-index: 0; }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; background-size: cover; background-position: center; }
.slide.active { opacity: 1; }
.slide.ph1 { background: linear-gradient(180deg, rgba(10,10,10,0.30) 0%, rgba(10,10,10,0.82) 100%), radial-gradient(120% 100% at 68% 22%, #7a4416, #140d08); }
.slide.ph2 { background: linear-gradient(180deg, rgba(10,10,10,0.32) 0%, rgba(10,10,10,0.86) 100%), radial-gradient(120% 100% at 50% 42%, #2e2820, #0c0a08); }
.slide.ph3 { background: linear-gradient(180deg, rgba(10,10,10,0.30) 0%, rgba(10,10,10,0.88) 100%), linear-gradient(120deg, #3a3a3c, #0b0b0c); }
.slide.hasimg { background-image: linear-gradient(180deg, rgba(10,10,10,0.28) 0%, rgba(10,10,10,0.84) 100%), var(--img); }
.hero-cols { position: absolute; top: var(--nav-h); left: 0; right: 0; bottom: 0; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); pointer-events: none; }
.hero-cols span { border-right: 1px solid rgba(245,240,232,0.13); }
.hero-cols span:last-child { border-right: 0; }
.hero-nav { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); padding-bottom: 46px; }
.hcol { padding: 0 30px; display: flex; flex-direction: column; justify-content: flex-end; }
.hcol .hh { font-family: var(--font-body); font-weight: 700; text-transform: uppercase; font-size: clamp(17px, 1.9vw, 27px); letter-spacing: 0.01em; color: #fff; transition: color 0.2s ease; }
.hcol .hs { margin-top: 6px; font-family: var(--font-mono); font-size: 13px; color: rgba(245,240,232,0.6); }
.hcol:hover .hh { color: var(--amber); }
.hero-note { position: absolute; z-index: 2; top: calc(var(--nav-h) + 22px); right: 32px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(245,240,232,0.42); }

/* Hero (mobile): stacked full-image panels */
.hero-stack { display: none; }
.stack-panel { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 60vh; padding: 30px 24px; background-size: cover; background-position: center; border-bottom: 1px solid rgba(245,240,232,0.12); }
.stack-panel.ph1 { background-color: #241708; }
.stack-panel.ph2 { background-color: #1c1913; }
.stack-panel.ph3 { background-color: #202021; }
.stack-panel.hasimg { background-image: var(--img); }
.stack-panel::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,0.10) 0%, rgba(10,10,10,0.78) 100%); }
.stack-panel .sp-inner { position: relative; z-index: 1; }
.stack-panel .sp-name { font-family: var(--font-body); font-weight: 700; text-transform: uppercase; font-size: 26px; line-height: 1.08; color: #fff; }
.stack-panel .sp-domain { display: block; margin-top: 7px; font-family: var(--font-mono); font-size: 13px; color: rgba(245,240,232,0.72); }

/* Sections */
section.band { padding: 120px 0; border-bottom: 1px solid var(--line); }
.sec-head { max-width: 64ch; margin-bottom: 60px; }
.sec-head h2 { font-size: clamp(38px, 5.5vw, 66px); margin: 18px 0 20px; letter-spacing: -0.01em; }
.sec-head p { color: var(--muted); font-size: 19px; }

/* About */
.about-inner { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 56px; }
.about-inner h2 { font-size: clamp(38px, 5vw, 60px); letter-spacing: -0.01em; }
.about-copy p { color: #d8d2c7; font-size: 19px; }
.about-copy p.small { color: var(--muted); font-size: 16px; }
.about-copy a { color: var(--amber); }

/* Contact */
.contact { padding: 120px 0; border-bottom: 1px solid var(--line); background: radial-gradient(90% 140% at 50% 0%, rgba(232,160,32,0.10), transparent 60%), var(--bg); text-align: center; }
.contact h2 { font-size: clamp(38px, 5.5vw, 64px); letter-spacing: -0.01em; }
.contact p { color: var(--muted); font-size: 19px; margin: 18px auto 34px; max-width: 44ch; }
.contact .email { display: block; margin-top: 26px; font-family: var(--font-mono); font-size: 14px; color: var(--muted); }
.contact .email a { color: var(--amber); }

/* Footer */
.site-footer { padding: 88px 0 52px; }
.foot-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; }
.foot-brand .wordmark { font-size: 16px; margin: 18px 0 16px; }
.foot-brand p { color: var(--muted); font-size: 15px; max-width: 36ch; }
.foot-col h4 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin: 0 0 18px; font-weight: 500; }
.foot-col a { display: block; color: #cfc9be; font-size: 15px; margin-bottom: 11px; transition: color 0.2s ease; }
.foot-col a:hover { color: var(--amber); }
.foot-base { display: flex; justify-content: space-between; align-items: center; margin-top: 66px; padding-top: 26px; border-top: 1px solid var(--line); flex-wrap: wrap; gap: 12px; }
.foot-base span, .foot-base a { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }

@media (max-width: 860px) {
  .brand-tag { display: none; }
  .hero { display: none; }
  .hero-stack { display: block; }
  .about-inner { grid-template-columns: 1fr; gap: 28px; }
  .foot-grid { grid-template-columns: 1fr; gap: 36px; }
  section.band, .contact { padding: 84px 0; }
}
