/* Shared stylesheet for the city landing pages
   (/real-estate-videography-las-vegas, -henderson, -summerlin).

   Reproduces the ArcaTech marketing design system — Fraunces + Inter +
   IBM Plex Mono, near-black #030001 with amber #FFBF00 — so the landing pages
   match index.html and the service pages. Kept in one same-origin file so the
   three pages share it (cached after first load) instead of duplicating it. */

:root{
  --bg: #030001;
  --bg-panel: #0D0908;
  --bg-panel-2: #140F0E;
  --accent-gold: #FFBF00;
  --accent-gold-soft: #FFD54F;
  --accent-bronze: #8A6400;
  --text-primary: #F5F5F0;
  --text-muted: #999999;
  --divider: #2B2B2B;
  --max-w: 1180px;
}

*{ box-sizing: border-box; margin:0; padding:0; }
html{ scroll-behavior: smooth; }
body{
  background: var(--bg);
  color: var(--text-primary);
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a{ color: inherit; text-decoration: none; }
img, svg{ display:block; max-width:100%; }
:focus-visible{ outline: 2px solid var(--accent-gold); outline-offset: 3px; }

.wrap{ max-width: var(--max-w); margin: 0 auto; padding: 0 32px; }

.eyebrow{
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--accent-gold);
}
h1,h2,h3{
  font-family: 'Fraunces', serif; font-weight: 450;
  line-height: 1.08; letter-spacing: -0.01em;
}
.italic{ font-style: italic; font-weight: 400; color: var(--accent-gold-soft); }
.arch{ border-radius: 50% 50% 0 0 / 62% 62% 0 0; overflow: hidden; }

@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
}

/* ---------- NAV ---------- */
header{
  position: sticky; top:0; z-index: 50;
  background: rgba(3,0,1,0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--divider);
}
nav{
  display:flex; align-items:center; justify-content:space-between;
  padding: 20px 32px; max-width: var(--max-w); margin: 0 auto;
}
.logo{
  font-family:'Fraunces', serif; font-size: 21px; letter-spacing: 0.01em;
  display:flex; align-items:baseline; gap:2px; color: var(--text-primary);
}
.logo span{ color: var(--accent-gold); font-weight: 600; }
.nav-links{ display:flex; gap: 28px; align-items:center; white-space: nowrap; }
.nav-links a{
  font-size: 14px; color: var(--text-muted);
  padding: 8px 12px; margin: -8px -12px;
  border: 1px solid transparent; border-radius: 3px;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.nav-links a:not(.nav-cta):hover{
  color: var(--accent-gold-soft); border-color: var(--accent-gold);
  background: rgba(255,191,0,0.05);
}
.nav-cta{
  font-family:'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing:.04em;
  color: var(--bg) !important; background: var(--accent-gold);
  padding: 10px 18px; border-radius: 3px;
  transition: background .2s ease, transform .2s ease;
}
.nav-cta:hover{ background: var(--accent-gold-soft); transform: translateY(-1px); }
.nav-toggle{ display:none; background:none; border:none; color:var(--text-primary); font-size:22px; cursor:pointer; }

@media (max-width: 1020px){
  .nav-links{
    position:absolute; top: 100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap: 18px; white-space: normal;
    background: var(--bg-panel); padding: 24px 32px 32px;
    border-bottom: 1px solid var(--divider); display:none;
  }
  .nav-links.open{ display:flex; }
  .nav-links.open a{ margin: 0; }
  .nav-toggle{ display:block; }
}

/* ---------- BUTTONS ---------- */
.btn-primary, .btn-secondary{
  font-family:'IBM Plex Mono', monospace; font-size: 13px; letter-spacing:.04em;
  padding: 15px 26px; border-radius: 3px; display:inline-block; transition: all .2s ease;
}
.btn-primary{ background: var(--accent-gold); color: var(--bg); }
.btn-primary:hover{ background: var(--accent-gold-soft); transform: translateY(-1px); }
.btn-secondary{ border: 1px solid var(--divider); color: var(--text-primary); }
.btn-secondary:hover{ border-color: var(--accent-gold); color: var(--accent-gold-soft); }

/* ---------- HERO ---------- */
.hero{
  padding: 80px 32px 56px; max-width: var(--max-w); margin: 0 auto;
  display:grid; grid-template-columns: 1.05fr 0.95fr; gap: 64px; align-items:center;
}
.hero h1{ font-size: clamp(36px, 5vw, 56px); margin: 18px 0 22px; }
.hero p.lede{ font-size: 18px; color: var(--text-muted); max-width: 48ch; margin-bottom: 32px; }
.hero-ctas{ display:flex; gap: 16px; flex-wrap:wrap; }
.hero-visual{
  aspect-ratio: 4/5; position: relative;
  background: linear-gradient(160deg, #2A2318, #171310 70%);
  border: 1px solid var(--divider);
}
.hero-visual .video-thumb{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.9; }
.hero-visual .tint{ position:absolute; inset:0; background: linear-gradient(160deg, rgba(3,0,1,0.15), rgba(3,0,1,0.55)); }
.hero-caption{
  margin-top: 14px; font-family:'IBM Plex Mono', monospace; font-size: 12px;
  letter-spacing:.08em; text-transform: uppercase; color: var(--text-muted); text-align:center;
}
@media (max-width: 900px){
  .hero{ grid-template-columns: 1fr; gap: 40px; padding-top: 56px; }
  .hero-visual{ max-width: 360px; }
}

/* ---------- SECTIONS ---------- */
.divider{ border:0; border-top:1px solid var(--divider); max-width: var(--max-w); margin: 0 auto; }
section.band{ padding: 64px 0; }
.section-head{ margin-bottom: 34px; }
.section-head h2{ font-size: clamp(26px, 3.4vw, 36px); margin-top: 10px; }
.prose p{ color: var(--text-muted); font-size: 17px; max-width: 68ch; margin-bottom: 18px; }
.prose p strong{ color: var(--text-primary); font-weight: 600; }

/* feature grid */
.feature-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 8px; }
.feature-card{
  background: var(--bg-panel); border: 1px solid var(--divider);
  border-radius: 8px; padding: 22px 22px 24px;
}
.feature-card h3{ font-size: 19px; margin-bottom: 8px; }
.feature-card p{ color: var(--text-muted); font-size: 14.5px; }
@media (max-width: 820px){ .feature-grid{ grid-template-columns: 1fr; } }

/* neighborhood chips */
.chips{ display:flex; flex-wrap:wrap; gap: 10px; margin-top: 6px; }
.chip{
  font-family:'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing:.03em;
  color: var(--text-muted); border: 1px solid var(--divider);
  border-radius: 999px; padding: 7px 14px;
}

/* ---------- PORTFOLIO REELS ---------- */
.reels{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }
.reel{ text-align:center; }
.video-embed{
  aspect-ratio: 9/16; max-width: 230px; margin: 0 auto;
  background: linear-gradient(160deg, #2A2318, #171310 70%);
  border: 1px solid var(--accent-gold); border-radius: 22px;
  position: relative; overflow: hidden; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(255,191,0,0.15) inset;
}
.video-embed::before{
  content:""; position:absolute; top:10px; left:50%; transform: translateX(-50%);
  width:34px; height:4px; border-radius:2px; background: rgba(255,255,255,0.22); z-index:2;
}
.video-embed .video-thumb{ position:absolute; inset:0; background-size:cover; background-position:center; }
.video-embed .video-tint{ position:absolute; inset:0; background: linear-gradient(160deg, rgba(42,35,24,0.25), rgba(23,19,16,0.45) 70%); }
.video-embed .video-play{
  position:absolute; top:50%; left:50%; transform: translate(-50%,-50%);
  width:54px; height:54px; border-radius:50%;
  background: rgba(3,0,1,0.55); border: 1px solid var(--accent-gold);
  display:flex; align-items:center; justify-content:center;
}
.video-embed .video-play svg{ width:18px; margin-left:3px; }
.reel .cap-title{ font-size: 15px; font-weight:500; margin-top: 14px; }
.reel .cap-meta{ color: var(--text-muted); font-size: 13px; margin-top: 3px; }
@media (max-width: 720px){ .reels{ grid-template-columns: 1fr; } }

/* lightbox (shared with index.html's behavior) */
.video-lightbox{
  position: fixed; inset: 0; z-index: 200; background: rgba(3,0,1,0.92);
  display: none; align-items: center; justify-content: center; padding: 24px;
}
.video-lightbox.open{ display: flex; }
.video-lightbox .lightbox-inner{
  width: min(1100px, 100%); aspect-ratio: 16/9; position: relative;
  border: 1px solid var(--accent-gold); border-radius: 8px; overflow: hidden; background: #000;
}
.video-lightbox iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-lightbox .lightbox-close{
  position: absolute; top: 24px; right: 28px; background: none;
  border: 1px solid var(--divider); color: var(--text-primary); font-size: 20px;
  width: 44px; height: 44px; border-radius: 50%; cursor: pointer; z-index: 201;
  transition: border-color .2s ease, color .2s ease;
}
.video-lightbox .lightbox-close:hover{ border-color: var(--accent-gold); color: var(--accent-gold); }

/* ---------- CTA BAND ---------- */
.cta-band{
  background: var(--bg-panel); border: 1px solid var(--divider); border-radius: 12px;
  padding: 44px 40px; text-align: center; margin: 8px 0 0;
}
.cta-band h2{ font-size: clamp(24px, 3vw, 32px); margin-bottom: 12px; }
.cta-band p{ color: var(--text-muted); max-width: 52ch; margin: 0 auto 24px; }
.cta-band .contact-meta{
  margin-top: 22px; display:flex; gap: 22px; justify-content:center; flex-wrap:wrap;
  font-family:'IBM Plex Mono', monospace; font-size: 13px; color: var(--text-muted);
}
.cta-band .contact-meta a:hover{ color: var(--accent-gold-soft); }

/* ---------- FOOTER ---------- */
footer{ border-top: 1px solid var(--divider); padding: 56px 32px 32px; font-size: 14px; margin-top: 24px; }
.footer-grid{ max-width: 1140px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
.footer-brand .logo{ font-family:'Fraunces', serif; font-size: 21px; color: var(--text-primary); }
.footer-brand .logo span{ color: var(--accent-gold); font-weight: 600; }
.footer-brand p{ color: var(--text-muted); font-size: 13.5px; margin-top: 12px; max-width: 34ch; line-height: 1.6; }
.footer-col h4{
  font-family:'IBM Plex Mono', monospace; font-size: 11.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--accent-gold); margin-bottom: 16px; font-weight: 400;
}
.footer-col a{ display:block; color: var(--text-muted); font-size: 14px; margin-bottom: 10px; transition: color .25s ease; }
.footer-col a:hover{ color: var(--accent-gold-soft); }
.footer-bottom{
  max-width: 1140px; margin: 44px auto 0; padding-top: 24px; border-top: 1px solid var(--divider);
  font-family:'IBM Plex Mono', monospace; font-size: 12px; color: var(--text-muted); text-align: center;
}
@media (max-width: 800px){ .footer-grid{ grid-template-columns: 1fr; gap: 32px; } }

/* ---------- BLOG ---------- */
.article{ max-width: 760px; margin: 0 auto; padding: 64px 32px 48px; }
.article h1{ font-size: clamp(32px, 4.6vw, 46px); margin: 14px 0 16px; }
.article-meta{
  font-family:'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing:.04em;
  color: var(--text-muted); display:flex; gap: 16px; flex-wrap:wrap; margin-bottom: 6px;
}
.article-body{ margin-top: 20px; }
.article-body p{ font-size: 18px; line-height: 1.72; color: #C9C6BC; margin: 0 0 22px; }
.article-body h2{ font-size: clamp(22px, 3vw, 29px); color: var(--text-primary); margin: 40px 0 14px; }
.article-body strong{ color: var(--text-primary); font-weight: 600; }
.article-body a{
  color: var(--accent-gold); text-decoration: underline;
  text-underline-offset: 3px; text-decoration-thickness: 1px;
}
.article-body a:hover{ color: var(--accent-gold-soft); }
/* responsive 16:9 embed — aspect-ratio reserves the space so the lazy iframe
   causes no layout shift */
.video-wrap{
  position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 30px 0;
  border: 1px solid var(--divider); border-radius: 10px; overflow: hidden; background: #000;
}
.video-wrap iframe{ position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.article-cta{ margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--divider); }

/* blog index */
.blog-head{ padding: 72px 32px 8px; max-width: var(--max-w); margin: 0 auto; }
.blog-head h1{ font-size: clamp(34px, 5vw, 50px); margin: 14px 0 12px; }
.blog-head p{ color: var(--text-muted); font-size: 18px; max-width: 60ch; }
.blog-list{ max-width: 820px; margin: 0 auto; padding: 12px 32px 8px; }
.post-card{
  display: block; background: var(--bg-panel); border: 1px solid var(--divider);
  border-radius: 10px; padding: 26px 28px; margin-bottom: 16px;
  transition: border-color .2s ease, transform .2s ease;
}
.post-card:hover{ border-color: var(--accent-gold); transform: translateY(-1px); }
.post-card .post-date{ font-family:'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing:.04em; color: var(--text-muted); }
.post-card h2{ font-size: 25px; margin: 9px 0 10px; color: var(--text-primary); }
.post-card p{ color: var(--text-muted); font-size: 15.5px; line-height: 1.6; }
.post-card .more{ display:inline-block; margin-top: 14px; font-family:'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing:.04em; color: var(--accent-gold); }

/* "From the blog" note on the city landing pages */
.blog-note{
  border: 1px solid var(--divider); border-left: 3px solid var(--accent-gold);
  border-radius: 8px; padding: 22px 26px; background: var(--bg-panel);
  display: flex; flex-direction: column; gap: 8px;
}
.blog-note a{ font-family:'Fraunces', serif; font-size: 20px; color: var(--text-primary); }
.blog-note a:hover{ color: var(--accent-gold-soft); }

/* ---------- MODEL SPOTLIGHTS ---------- */
.draft-banner{
  background: rgba(255,191,0,0.12); border-bottom: 1px solid var(--accent-bronze);
  color: var(--accent-gold-soft); text-align: center; padding: 10px 16px;
  font-family:'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing:.04em;
}
.crumb{ font-family:'IBM Plex Mono', monospace; font-size: 12px; color: var(--text-muted); margin-bottom: 16px; letter-spacing:.03em; }
.crumb a{ color: var(--text-muted); }
.crumb a:hover{ color: var(--accent-gold-soft); }
.crumb span{ color: var(--text-primary); }
.draft-tag{
  display:inline-block; font-family:'IBM Plex Mono', monospace; font-size: 11px; letter-spacing:.1em;
  color: var(--bg); background: var(--accent-gold); border-radius: 3px; padding: 3px 8px; margin-bottom: 18px;
}
/* models index grid */
.models-grid{
  max-width: var(--max-w); margin: 0 auto; padding: 12px 32px 8px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
.model-card{
  display: block; background: var(--bg-panel); border: 1px solid var(--divider);
  border-radius: 10px; overflow: hidden; transition: border-color .2s ease, transform .2s ease;
}
.model-card:hover{ border-color: var(--accent-gold); transform: translateY(-1px); }
.model-card .thumb{ aspect-ratio: 16/9; background-size: cover; background-position: center; border-bottom: 1px solid var(--divider); }
.model-card .m-body{ padding: 16px 18px 20px; }
.model-card .m-name{ font-family:'Fraunces', serif; font-size: 20px; color: var(--text-primary); }
.model-card .m-meta{ color: var(--text-muted); font-size: 13px; margin-top: 4px; }
.model-card .more{ display:inline-block; margin-top: 12px; font-family:'IBM Plex Mono', monospace; font-size: 12px; letter-spacing:.04em; color: var(--accent-gold); }
@media (max-width: 820px){ .models-grid{ grid-template-columns: 1fr; } }
