/*
Theme Name: Revelational
Theme URI: https://revelational.art
Author: Revelational Art
Description: Immersive single-edition art gallery theme for WooCommerce. Full-screen crossfading hero weighted by views, cinematic dark product pages, and 1-of-1 scarcity built in.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: revelational
WC requires at least: 6.0
WC tested up to: 9.9
*/

:root{
  --bg:#0a0a0b; --ink:#f4f2ee; --muted:#a8a49c; --line:rgba(244,242,238,.16);
  --accent:#c9a25f; --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;height:auto}

/* ---------- SITE HEADER ---------- */
.rev-siteheader{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:18px 34px;transition:background .4s,opacity .4s;pointer-events:none}
.rev-brand{font-family:var(--serif);letter-spacing:.28em;font-size:22px;font-weight:500;text-decoration:none;pointer-events:auto}
.rev-brand .kicker{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-weight:400}
.rev-nav{display:flex;gap:26px;pointer-events:auto;list-style:none;margin:0;padding:0}
.rev-nav a{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s}
.rev-nav a:hover{color:var(--ink)}
.rev-cart{pointer-events:auto;color:var(--muted);text-decoration:none;font-size:12px;letter-spacing:.12em}
.rev-cart:hover{color:var(--ink)}
body.page-inner .rev-siteheader{position:sticky;background:rgba(10,10,11,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}

/* ---------- HERO ---------- */
#rev-hero{position:fixed;inset:0;background:#000;overflow:hidden}
.rev-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.rev-slide.on{opacity:1}
.rev-slide .img{position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.06);transition:transform 8s ease-out;filter:brightness(.82);cursor:pointer}
.rev-slide.on .img{transform:scale(1.14)}
.rev-vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 120% at 50% 40%,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%),
  linear-gradient(to bottom,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 60%,rgba(0,0,0,.7) 100%)}
.rev-chrome{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;pointer-events:none}
#rev-hero.show .rev-chrome{opacity:1}
.rev-arrow{position:absolute;top:50%;transform:translateY(-50%);width:60px;height:60px;border-radius:50%;
  border:1px solid var(--line);background:rgba(10,10,11,.25);backdrop-filter:blur(6px);
  display:grid;place-items:center;cursor:pointer;pointer-events:auto;transition:.3s;color:var(--ink)}
.rev-arrow:hover{background:rgba(10,10,11,.6);border-color:var(--accent)}
.rev-arrow.prev{left:28px}.rev-arrow.next{right:28px}
.rev-arrow svg{width:20px;height:20px}
.rev-caption{position:absolute;left:34px;bottom:34px;pointer-events:auto;max-width:60%;cursor:pointer;text-decoration:none;display:block}
.rev-oneoff{display:inline-block;font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:4px 12px;margin-bottom:14px}
.rev-caption .t{font-family:var(--serif);font-size:clamp(30px,5vw,54px);line-height:1.02;font-weight:500;color:var(--ink)}
.rev-caption .meta{margin-top:10px;color:var(--muted);font-size:14px;letter-spacing:.04em}
.rev-caption .price{color:var(--ink);font-size:15px;margin-left:14px}
.rev-viewcta{position:absolute;right:34px;bottom:40px;pointer-events:auto;cursor:pointer;text-decoration:none;
  display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.rev-viewcta .dot{width:44px;height:44px;border-radius:50%;border:1px solid var(--accent);display:grid;place-items:center;transition:.3s}
.rev-viewcta:hover .dot{background:var(--accent);color:#0a0a0b}
.rev-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:9px;pointer-events:auto}
.rev-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:.3s;display:inline-block}
.rev-dots i.on{background:var(--accent);width:22px;border-radius:4px}
.rev-hint{position:absolute;bottom:20px;right:30px;font-size:11px;letter-spacing:.15em;color:rgba(255,255,255,.4);text-transform:uppercase;transition:opacity .4s}
#rev-hero.show .rev-hint{opacity:0}

/* ---------- PRODUCT PAGE ---------- */
.rev-pwrap{display:grid;grid-template-columns:1.15fr .85fr;min-height:100vh}
.rev-pimg{position:relative;background:#000;display:grid;place-items:center;padding:12vh 4vw 6vh}
.rev-pimg img{max-width:100%;max-height:82vh;width:auto;box-shadow:0 40px 120px rgba(0,0,0,.7)}
.rev-pinfo{padding:14vh 5vw 8vh;display:flex;flex-direction:column;justify-content:center;max-width:660px}
.rev-pinfo h1{font-family:var(--serif);font-size:clamp(34px,4vw,52px);font-weight:500;line-height:1.03;margin:0 0 8px}
.rev-pinfo .sub{color:var(--muted);font-style:italic;font-family:var(--serif);font-size:20px;margin-bottom:26px}
.rev-desc{color:#d9d5cd;font-weight:300;line-height:1.8;font-size:15.5px;margin-bottom:30px}
.rev-desc p{margin:0 0 14px}
.rev-oneoff-lg{align-self:flex-start;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:5px 13px;margin-bottom:22px}
.rev-specs{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:28px}
.rev-specs .k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.rev-specs .v{font-size:15px;color:var(--ink)}
.rev-forever{display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:13px;line-height:1.6;
  background:rgba(255,255,255,.03);border:1px solid var(--line);padding:16px 18px;border-radius:3px;margin-top:22px}
.rev-forever svg{flex:0 0 auto;margin-top:2px;color:var(--accent)}
.rev-forever b{color:var(--ink);font-weight:500}

/* WooCommerce cart / variations restyle */
.rev-pinfo .price{font-family:var(--serif);font-size:28px;color:var(--ink);margin:0 0 8px}
.rev-pinfo .price del{color:var(--muted);font-size:20px;margin-right:10px}
.rev-pinfo form.cart{margin:8px 0 0}
.rev-pinfo table.variations{width:100%;border-collapse:collapse;margin-bottom:16px}
.rev-pinfo table.variations td{padding:6px 0;vertical-align:middle}
.rev-pinfo table.variations td.label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);width:120px}
.rev-pinfo select,.rev-pinfo .qty{background:#111214;color:var(--ink);border:1px solid var(--line);
  padding:12px 14px;font-family:inherit;font-size:14px;border-radius:2px;min-width:200px}
.rev-pinfo .quantity{margin-right:14px}
.rev-pinfo .qty{min-width:70px;text-align:center}
.rev-pinfo button.single_add_to_cart_button,.rev-pinfo .button{background:var(--accent);color:#0a0a0b;border:none;
  font-family:inherit;font-weight:500;letter-spacing:.18em;text-transform:uppercase;font-size:13px;
  padding:18px 34px;cursor:pointer;transition:.25s;border-radius:2px;line-height:1}
.rev-pinfo button.single_add_to_cart_button:hover,.rev-pinfo .button:hover{background:#e0bd7c}
.rev-pinfo .stock.out-of-stock{color:var(--muted);font-style:italic}
.rev-pinfo .reset_variations{color:var(--muted);font-size:12px;margin-left:10px}
.rev-sold-note{margin-top:8px;color:var(--accent);font-family:var(--serif);font-size:22px;font-style:italic}

@media(max-width:860px){
  .rev-pwrap{grid-template-columns:1fr}
  .rev-pimg{padding:90px 20px 20px}.rev-pimg img{max-height:60vh}
  .rev-pinfo{padding:30px 22px 70px}
  .rev-caption{max-width:82%}.rev-nav{display:none}
  .rev-arrow{width:48px;height:48px}
  .rev-siteheader{padding:14px 20px}
}

/* generic inner pages */
.rev-page{max-width:820px;margin:0 auto;padding:140px 24px 80px}
.rev-page h1,.rev-page h2{font-family:var(--serif);font-weight:500}
.rev-page a{color:var(--accent)}

/* front-page: header fades in with hero chrome */
body.home .rev-siteheader{opacity:0}
body.home.rev-chrome-on .rev-siteheader{opacity:1}
