/*
Theme Name: ZoiLens
Theme URI: https://zoilens.com
Author: ZoiLens Photography
Author URI: https://zoilens.com
Description: Custom luxury dark theme for ZoiLens real estate photography
Version: 1.0.0
License: GNU General Public License v2 or later
Tags: photography, real-estate, dark, luxury, custom
*/

/* ============================================================
   ZoiLens Theme Styles
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --black: #0a0908; --deep: #111009; --gold: #c8a96e;
  --gold-light: #e2c99a; --gold-dim: #7a6340; --cream: #f5f0e8;
  --muted: #7a756e; --border: rgba(200,169,110,0.18); --error: #e05a4e;
  --ff-display: 'Cormorant Garamond', serif; --ff-body: 'DM Sans', sans-serif;
}
html { scroll-behavior: smooth; }
body { background: var(--black); color: var(--cream); font-family: var(--ff-body); font-weight: 300; line-height: 1.6; overflow-x: hidden; }
body::before { content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:0.4; }
nav { position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0.8rem 4rem;background:linear-gradient(to bottom,rgba(10,9,8,0.95) 0%,transparent 100%);transition:background 0.4s; }
nav.scrolled { background:rgba(10,9,8,0.97);border-bottom:1px solid var(--border); }
.nav-logo { font-family:var(--ff-display);font-size:2.2rem;font-weight:500;letter-spacing:0.04em;color:var(--cream);text-decoration:none; }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex;gap:2.5rem;align-items:center;list-style:none; }
.nav-links a { color:rgba(245,240,232,0.65);text-decoration:none;font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;transition:color 0.3s; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { border:1px solid var(--gold);color:var(--gold)!important;padding:0.55rem 1.4rem; }
.nav-cta:hover { background:var(--gold)!important;color:var(--black)!important; }
.hero { min-height:100vh;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:0 4rem 6rem;overflow:hidden; }
.hero-bg { position:absolute;inset:0;background:linear-gradient(160deg,rgba(10,9,8,0.25) 0%,rgba(10,9,8,0.55) 55%,rgba(10,9,8,1) 100%),url('assets/images/hero-bg.png') center/80% no-repeat;background-position:center;background-size:cover;z-index:0;animation:heroZoom 14s ease-out forwards; }
@keyframes heroZoom { from{transform:scale(1.08)}to{transform:scale(1)} }
.hero-content { position:relative;z-index:2;max-width:820px;padding-top:4rem; }
.hero-eyebrow { display:inline-flex;align-items:center;gap:0.8rem;font-size:0.92rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem;opacity:0;animation:fadeUp 0.8s 0.3s ease forwards; }
.hero-eyebrow::before { content:'';display:block;width:28px;height:1px;background:var(--gold); }
.hero-title { font-family:var(--ff-display);font-size:clamp(3.2rem,7vw,6.4rem);font-weight:300;line-height:1.08;color:var(--cream);opacity:0;animation:fadeUp 0.9s 0.5s ease forwards; }
.hero-title em { font-style:italic;color:var(--gold-light); }
.hero-sub { margin-top:1.6rem;font-size:1rem;color:rgba(245,240,232,0.55);max-width:440px;opacity:0;animation:fadeUp 0.9s 0.75s ease forwards; }
.hero-actions { margin-top:2.8rem;display:flex;gap:1.2rem;align-items:center;opacity:0;animation:fadeUp 0.9s 1s ease forwards; }
.btn-primary { background:var(--gold);color:var(--black);border:none;padding:0.9rem 2.2rem;font-family:var(--ff-body);font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;display:inline-block;transition:background 0.3s,transform 0.2s; }
.btn-primary:hover { background:var(--gold-light);transform:translateY(-2px); }
.btn-ghost { color:rgba(245,240,232,0.7);text-decoration:none;font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;display:inline-flex;align-items:center;gap:0.6rem;transition:color 0.3s; }
.btn-ghost::after { content:'→';font-size:1rem;transition:transform 0.3s; }
.btn-ghost:hover { color:var(--gold); }
.btn-ghost:hover::after { transform:translateX(4px); }
.hero-scroll { position:absolute;bottom:2.5rem;right:4rem;z-index:2;display:flex;flex-direction:column;align-items:center;gap:0.8rem;opacity:0;animation:fadeUp 1s 1.4s ease forwards; }
.hero-scroll span { font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);writing-mode:vertical-rl; }
.scroll-line { width:1px;height:60px;background:linear-gradient(to bottom,var(--gold),transparent);animation:scrollPulse 2s ease infinite; }
@keyframes scrollPulse { 0%,100%{opacity:0.4}50%{opacity:1} }
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)} }
.marquee-strip { background:var(--gold);padding:0.75rem 0;overflow:hidden;white-space:nowrap; }
.marquee-inner { display:inline-flex;animation:marquee 22s linear infinite; }
.marquee-item { font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--black);font-weight:500;padding:0 2.5rem; }
.marquee-dot { color:rgba(10,9,8,0.4);font-size:1rem; }
@keyframes marquee { from{transform:translateX(0)}to{transform:translateX(-50%)} }
section { padding:7rem 4rem; }
.section-label { font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:0.8rem;margin-bottom:1.2rem; }
.section-label::before { content:'';display:block;width:22px;height:1px;background:var(--gold); }
.section-title { font-family:var(--ff-display);font-size:clamp(2.2rem,4.5vw,3.8rem);font-weight:300;line-height:1.15;color:var(--cream); }
.section-title em { font-style:italic;color:var(--gold-light); }
.about { background:var(--deep); }
.about-grid { display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center; }
.about-img { position:relative;height:580px; }
.about-img-main { width:78%;height:100%;object-fit:cover;display:block;position:relative;z-index:1; }
.about-img-accent { position:absolute;bottom:-2rem;right:-1rem;width:46%;height:46%;object-fit:cover;border:3px solid var(--black);z-index:2; }
.about-img-frame { position:absolute;top:-1.5rem;left:-1.5rem;width:60%;height:60%;border:1px solid var(--border);z-index:0; }
.about-text { padding-right:1rem; }
.about-body { margin-top:1.8rem;color:rgba(245,240,232,0.6);line-height:1.85;font-size:0.95rem; }
.about-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--border); }
.stat-num { font-family:var(--ff-display);font-size:2.8rem;font-weight:300;color:var(--gold);line-height:1; }
.stat-label { font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);margin-top:0.4rem; }
.services-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;margin-top:4rem;background:var(--border); }
.service-card { background:var(--deep);padding:2.8rem 2.2rem;transition:background 0.4s;position:relative;overflow:hidden; }
.service-card::after { content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--gold);transition:width 0.4s ease; }
.service-card:hover::after { width:100%; }
.service-card:hover { background:#16140f; }
.service-card.coming-soon { opacity:0.5; }
.service-card.coming-soon:hover { background:var(--deep); }
.service-card.coming-soon::after { display:none; }
.service-icon { font-size:1.6rem;margin-bottom:1.4rem;display:block; }
.service-name { font-family:var(--ff-display);font-size:1.45rem;font-weight:400;color:var(--cream);margin-bottom:0.8rem;display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap; }
.coming-soon-tag { font-family:var(--ff-body);font-size:0.58rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold-dim);border:1px solid var(--gold-dim);padding:0.2rem 0.5rem; }
.service-desc { font-size:0.85rem;color:rgba(245,240,232,0.5);line-height:1.75; }
.portfolio { background:var(--black); }
.portfolio-header { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2.5rem; }
.portfolio-slider { margin-top:3rem; }
.portfolio-main-wrap { position:relative;background:rgba(255,255,255,0.02);border:1px solid var(--border);padding:1.25rem; }
.portfolio-main-image { width:100%;height:620px;object-fit:contain;display:block;background:#0f0e0b; }
.portfolio-arrow { position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:1px solid var(--border);background:rgba(10,9,8,0.78);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:1.6rem;cursor:pointer;transition:border-color 0.3s,color 0.3s;z-index:2; }
.portfolio-arrow:hover { border-color:var(--gold);color:var(--gold-light); }
.portfolio-arrow.prev { left:1.5rem; }
.portfolio-arrow.next { right:1.5rem; }
.portfolio-meta { margin-top:1rem;display:flex;align-items:center;justify-content:space-between; }
.portfolio-counter { font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold); }
.portfolio-thumbs { margin-top:1.2rem;display:grid;grid-template-columns:repeat(6,1fr);gap:0.8rem; }
.portfolio-thumb { background:#0f0e0b;border:1px solid var(--border);padding:0;cursor:pointer;transition:border-color 0.3s,transform 0.25s;overflow:hidden;display:flex;align-items:center;justify-content:center;height:120px; }
.portfolio-thumb:hover { border-color:var(--gold-dim);transform:translateY(-2px); }
.portfolio-thumb.active { border-color:var(--gold);box-shadow:0 0 0 1px rgba(200,169,110,0.35); }
.portfolio-thumb img { width:100%;height:100%;object-fit:cover;object-position:center;display:block; }
.split-banner { background:var(--deep);padding:5rem 4rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center; }
.split-img { width:100%;height:auto;display:block; }
.split-text { padding:1rem 0; }
.pricing { background:var(--deep); }
.pricing-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;margin-top:4rem;background:var(--border); }
.price-card { background:var(--deep);padding:3rem 2.4rem;position:relative;transition:transform 0.3s; }
.price-card.featured { background:#181510;z-index:1;transform:translateY(-12px);box-shadow:0 40px 80px rgba(0,0,0,0.5);border:1px solid rgba(200,169,110,0.3); }
.price-card.unavailable { opacity:0.4;pointer-events:none; }
.price-badge { position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--black);font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;font-weight:500;padding:0.35rem 1.1rem; }
.unavailable-badge { position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:#2a2520;color:var(--muted);font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;font-weight:500;padding:0.35rem 1.1rem;border:1px solid var(--border); }
.price-tier { font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem; }
.price-amount { font-family:var(--ff-display);font-size:3.2rem;font-weight:300;color:var(--cream);line-height:1; }
.price-amount sup { font-size:1.2rem;vertical-align:top;margin-top:0.5rem; }
.price-name { font-family:var(--ff-display);font-size:1.5rem;font-weight:400;color:var(--cream);margin:1rem 0 0.5rem; }
.price-tagline { font-size:0.78rem;color:var(--muted);margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border); }
.price-features { list-style:none;display:flex;flex-direction:column;gap:0.9rem;margin-bottom:2.5rem; }
.price-features li { font-size:0.83rem;color:rgba(245,240,232,0.65);display:flex;align-items:center;gap:0.7rem; }
.price-features li::before { content:'';display:block;width:14px;height:1px;background:var(--gold);flex-shrink:0; }
.btn-book { display:block;text-align:center;padding:0.85rem;text-decoration:none;font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;transition:all 0.3s;cursor:pointer; }
.btn-book-outline { border:1px solid var(--gold-dim);color:var(--gold); }
.btn-book-outline:hover { border-color:var(--gold);background:rgba(200,169,110,0.08); }
.btn-book-filled { background:var(--gold);color:var(--black); }
.btn-book-filled:hover { background:var(--gold-light); }
.process { background:var(--black); }
.process-steps { display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:4rem;position:relative; }
.process-steps::before { content:'';position:absolute;top:2rem;left:12%;right:12%;height:1px;background:linear-gradient(to right,transparent,var(--border),var(--gold-dim),var(--border),transparent); }
.process-step { padding:0 2rem;text-align:center; }
.step-num { font-family:var(--ff-display);font-size:4rem;font-weight:300;color:var(--border);line-height:1;display:block;margin-bottom:1.5rem; }
.step-name { font-family:var(--ff-display);font-size:1.25rem;color:var(--cream);margin-bottom:0.6rem; }
.step-desc { font-size:0.82rem;color:var(--muted);line-height:1.7; }
.contact { background:var(--deep); }
.contact-inner { display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start; }
.contact-info { padding-top:0.5rem; }
.contact-body { margin-top:1.8rem;color:rgba(245,240,232,0.55);font-size:0.92rem;line-height:1.85;margin-bottom:2.5rem; }
.contact-items { display:flex;flex-direction:column;gap:1.2rem; }
.contact-item { display:flex;align-items:flex-start;gap:1rem; }
.contact-item-icon { width:36px;height:36px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:0.9rem;color:var(--gold);flex-shrink:0; }
.contact-item-label { font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold-dim);display:block;margin-bottom:0.2rem; }
.contact-item-val { font-size:0.88rem;color:rgba(245,240,232,0.75); }
.contact-item-val a { color:rgba(245,240,232,0.75);text-decoration:none;transition:color 0.3s; }
.contact-item-val a:hover { color:var(--gold); }
.form-section { display:flex;flex-direction:column;gap:1.2rem; }
.form-section.hidden { display:none; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:1.2rem; }
.form-group { display:flex;flex-direction:column;gap:0.5rem;position:relative; }
.form-label { font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold-dim); }
.form-label .req { color:var(--gold);margin-left:2px; }
.form-input,.form-select,.form-textarea { background:rgba(255,255,255,0.03);border:1px solid var(--border);color:var(--cream);padding:0.85rem 1rem;font-family:var(--ff-body);font-size:0.88rem;font-weight:300;transition:border-color 0.3s;outline:none; }
input[type="date"] { color:var(--cream);background:rgba(255,255,255,0.03);color-scheme:dark; }
input[type="date"]::-webkit-calendar-picker-indicator {
  filter: brightness(0) invert(1);
  opacity: 0.85;
  cursor: pointer;
  width: 18px;
  height: 18px;
}
.form-select { appearance:none; }
.form-select option { background:#1c1a14;color:var(--cream); }
.form-input::placeholder,.form-textarea::placeholder { color:rgba(245,240,232,0.2); }
.form-input:focus,.form-select:focus,.form-textarea:focus { border-color:var(--gold-dim); }
.form-input.invalid,.form-select.invalid,.form-textarea.invalid { border-color:var(--error)!important; }
.form-textarea { resize:vertical;min-height:110px; }
.field-error { font-size:0.68rem;color:var(--error);letter-spacing:0.04em;min-height:1em; }
.pac-container { background:#1c1a14!important;border:1px solid var(--border)!important;font-family:var(--ff-body)!important;box-shadow:0 8px 24px rgba(0,0,0,0.4)!important;border-radius:0!important;margin-top:2px!important; }
.pac-item { color:var(--cream)!important;border-top:1px solid var(--border)!important;padding:0.6rem 0.8rem!important;cursor:pointer!important;font-size:0.85rem!important; }
.pac-item:hover,.pac-item-selected { background:rgba(200,169,110,0.1)!important; }
.pac-item-query { color:var(--gold-light)!important;font-family:var(--ff-body)!important; }
.pac-matched { color:var(--gold)!important; }
.pac-icon { display:none!important; }
.pac-logo:after { display:none!important; }
.step-indicator { display:flex;align-items:center;gap:0.6rem;margin-bottom:2rem; }
.step-dot { width:28px;height:28px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:0.7rem;color:var(--muted);transition:all 0.3s; }
.step-dot.active { background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:500; }
.step-dot.done { background:transparent;border-color:var(--gold);color:var(--gold); }
.step-line { flex:1;height:1px;background:var(--border); }
.booking-summary { background:rgba(200,169,110,0.05);border:1px solid var(--border);padding:1.5rem;margin-bottom:1.5rem; }
.booking-summary-title { font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem; }
.summary-row { display:flex;justify-content:space-between;align-items:center;padding:0.4rem 0;border-bottom:1px solid rgba(200,169,110,0.08);font-size:0.82rem; }
.summary-row:last-child { border-bottom:none;padding-top:0.8rem;margin-top:0.4rem; }
.summary-row .label { color:var(--muted); }
.summary-row .value { color:var(--cream); }
.summary-row.total .value { font-family:var(--ff-display);font-size:1.4rem;color:var(--gold); }
.stripe-card-wrapper { background:rgba(255,255,255,0.03);border:1px solid var(--border);padding:0.9rem 1rem;transition:border-color 0.3s; }
.stripe-card-wrapper:focus-within { border-color:var(--gold-dim); }
#card-errors { font-size:0.78rem;color:var(--error);margin-top:0.5rem;min-height:1.2em; }
.btn-form-primary { background:var(--gold);color:var(--black);border:none;width:100%;padding:1rem;font-family:var(--ff-body);font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;transition:background 0.3s; }
.btn-form-primary:hover:not(:disabled) { background:var(--gold-light); }
.btn-form-primary:disabled { opacity:0.6;cursor:not-allowed; }
.btn-back { background:transparent;border:1px solid var(--border);color:var(--muted);width:100%;padding:0.7rem;font-family:var(--ff-body);font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:border-color 0.3s,color 0.3s;margin-top:0.6rem; }
.btn-back:hover { border-color:var(--gold-dim);color:var(--cream); }
.booking-success { display:none;text-align:center;padding:3rem 1rem; }
.booking-success.show { display:block; }
.success-icon { font-size:3rem;margin-bottom:1.2rem; }
.success-title { font-family:var(--ff-display);font-size:2rem;font-weight:300;color:var(--cream);margin-bottom:0.8rem; }
.success-title em { font-style:italic;color:var(--gold-light); }
.success-id { font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem; }
.success-body { font-size:0.88rem;color:rgba(245,240,232,0.55);line-height:1.8; }
footer { background:var(--black);padding:4rem 4rem 2rem;border-top:1px solid var(--border); }
.footer-top { display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid var(--border); }
.footer-logo { font-family:var(--ff-display);font-size:1.8rem;font-weight:400;color:var(--cream);text-decoration:none;display:block;margin-bottom:1rem; }
.footer-logo span { color:var(--gold); }
.footer-tagline { font-size:0.82rem;color:var(--muted);line-height:1.7;max-width:240px; }
.footer-col-title { font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem; }
.footer-links { list-style:none;display:flex;flex-direction:column;gap:0.7rem; }
.footer-links a { text-decoration:none;font-size:0.83rem;color:var(--muted);transition:color 0.3s; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { display:flex;align-items:center;justify-content:space-between;padding-top:2rem; }
.footer-copy { font-size:0.75rem;color:rgba(122,117,110,0.6); }
.footer-socials { display:flex;gap:1rem; }
.social-link { width:34px;height:34px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;font-size:0.7rem;font-weight:500;transition:border-color 0.3s,color 0.3s; }
.social-link:hover { border-color:var(--gold);color:var(--gold); }
.reveal { opacity:0;transform:translateY(36px);transition:opacity 0.9s ease,transform 0.9s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
@media(max-width:900px){
  nav{padding:1.2rem 1.5rem}.nav-links{display:none}
  section{padding:5rem 1.5rem}.hero{padding:0 1.5rem 5rem}
  .about-grid,.contact-inner,.split-banner{grid-template-columns:1fr}
  .about-img{height:340px;order:-1}
  .services-grid,.pricing-grid{grid-template-columns:1fr}
  .price-card.featured{transform:none}
  .process-steps{grid-template-columns:1fr 1fr}
  .process-steps::before{display:none}
  .footer-top{grid-template-columns:1fr 1fr}
  .form-row{grid-template-columns:1fr}
  .portfolio-main-image{height:420px}
  .portfolio-thumbs{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:500px){
  .portfolio-thumbs{grid-template-columns:repeat(2,1fr)}
  .portfolio-thumb{height:90px}
}