/* ============================================
   MAISON RÊVE — HOMEPAGE V2
   Storyboard design by Leah / Luminary Art
   Scoped entirely under .home-v2 so nothing
   here can affect any other page.
   ============================================ */

.home-v2 {
  --hv-bg: #1a1411;
  --hv-bg2: #171210;
  --hv-gold: #d2b68e;
  --hv-gold-dim: #a5906d;
  --hv-soft-gold: #e3caa0;
  --hv-hairline: rgba(217, 205, 180, 0.14);
  --hv-serif: 'Playfair Display', serif;
  --hv-body: 'EB Garamond', serif;
  --hv-sans: 'Jost', sans-serif;

  background: var(--hv-bg);
  color: var(--hv-soft-gold);
  font-family: var(--hv-body);
  display: block;
}

.home-v2 img { display: block; width: 100%; height: 100%; object-fit: cover; }

.home-v2 .hv-wrap { max-width: 1600px; margin: 0 auto; padding: 0 64px; }
.home-v2 .hv-eyebrow { font-family: var(--hv-sans); font-size: 11px; letter-spacing: 0.2em; color: var(--hv-gold-dim); text-transform: uppercase; margin: 0 0 22px; }

/* brand-mark divider */
.home-v2 .hv-divider { display: flex; align-items: center; justify-content: center; gap: 28px; }
.home-v2 .hv-divider .ln { width: 180px; height: 1px; background: linear-gradient(90deg, transparent, var(--hv-hairline) 85%); }
.home-v2 .hv-divider .ln.r { background: linear-gradient(270deg, transparent, var(--hv-hairline) 85%); }
.home-v2 .hv-divider img { height: 34px; width: auto; opacity: 0.9; }

/* ---------- hero ---------- */
.home-v2 .hv-hero { position: relative; width: 100%; min-height: 100vh; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.home-v2 .hv-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; animation: hvHeroZoom 24s ease-in-out infinite alternate; }
@keyframes hvHeroZoom { from { transform: scale(1.0); } to { transform: scale(1.07); } }
.home-v2 .hv-hero::after { content: ''; position: absolute; inset: 0; background: rgba(26,13,7,0.64); z-index: 1; }
.home-v2 .hv-hero-content { position: relative; z-index: 2; padding: 0 24px; max-width: 640px; }
.home-v2 .hv-hero-content img { height: 83px; width: auto; margin: 0 auto 32px; opacity: 0.95; display: block; }
.home-v2 .hv-hero-mark { font-family: var(--hv-serif); font-weight: 400; letter-spacing: 0.1em; font-size: 34px; color: var(--hv-gold); margin: 0 0 40px; line-height: 1.22; }
.home-v2 .hv-hero-address { font-family: var(--hv-serif); font-style: italic; font-weight: 400; font-size: 19px; letter-spacing: 0.1em; color: var(--hv-gold); text-shadow: 0 0 16px rgba(210,182,142,0.5); margin: 0 0 36px; }
.home-v2 .hv-hero-tag { font-family: var(--hv-sans); font-weight: 700; font-size: 15.5px; letter-spacing: 0.28em; color: var(--hv-soft-gold); text-transform: uppercase; margin: 0 0 44px; }

/* gilded shimmer button — shared by hero CTA */
.home-v2 .hv-cta { position: relative; overflow: hidden; display: inline-block; padding: 15px 34px; border-radius: 30px; border: 1px solid var(--hv-gold-dim); background: linear-gradient(180deg, rgba(214,180,120,0.4), rgba(150,112,64,0.24)); color: var(--hv-gold); font-family: var(--hv-sans); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; box-shadow: 0 4px 20px rgba(180,140,80,0.22), inset 0 1px 0 rgba(255,238,208,0.3); transition: box-shadow 0.4s ease, transform 0.4s ease, background 0.4s ease; }
.home-v2 .hv-cta::before { content: ''; position: absolute; top: 0; left: -160%; width: 55%; height: 100%; background: linear-gradient(115deg, transparent, rgba(255,246,222,0.55), transparent); transform: skewX(-20deg); transition: left 0.75s ease; }
.home-v2 .hv-cta:hover { box-shadow: 0 8px 30px rgba(205,165,105,0.4), inset 0 1px 0 rgba(255,240,212,0.4); transform: translateY(-2px); background: linear-gradient(180deg, rgba(226,194,140,0.5), rgba(174,132,76,0.32)); }
.home-v2 .hv-cta:hover::before { left: 160%; }

/* ---------- the house ---------- */
.home-v2 .hv-house { padding: 190px 0 170px; }
.home-v2 .hv-house-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 70px; align-items: center; }
.home-v2 .hv-house h2 { font-family: var(--hv-serif); font-weight: 400; font-size: 44px; line-height: 1.28; color: var(--hv-gold); margin: 0 0 30px; max-width: 12ch; }
.home-v2 .hv-house p { font-family: var(--hv-body); font-size: 18px; line-height: 1.9; opacity: 0.92; max-width: 48ch; margin: 0 0 26px; }

/* shared animated text link */
.home-v2 .hv-link { display: inline-flex; align-items: center; gap: 6px; font-family: var(--hv-sans); font-size: 14px; letter-spacing: 0.13em; color: var(--hv-gold); text-decoration: none; border-bottom: 1px solid var(--hv-gold-dim); padding-bottom: 5px; transition: color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, text-shadow 0.3s ease; }
.home-v2 .hv-link .arrow { display: inline-block; transition: transform 0.3s ease; }
.home-v2 .hv-link:hover { color: var(--hv-soft-gold); border-color: var(--hv-gold); transform: scale(1.07); text-shadow: 0 0 14px rgba(210,182,142,0.7); }
.home-v2 .hv-link:hover .arrow { transform: translateX(5px); }

.home-v2 .hv-house-primary { width: 100%; aspect-ratio: 4/3; overflow: hidden; box-shadow: 0 30px 60px rgba(0,0,0,0.45); }
.home-v2 .hv-house-secondary { display: flex; align-items: flex-end; gap: 22px; margin-top: 22px; }
.home-v2 .hv-house-secondary .a { width: 54%; aspect-ratio: 4/3; overflow: hidden; box-shadow: 0 24px 48px rgba(0,0,0,0.42); }
.home-v2 .hv-house-secondary .b { width: 43%; aspect-ratio: 3/4; overflow: hidden; box-shadow: 0 24px 48px rgba(0,0,0,0.42); }

/* ---------- designed for ---------- */
.home-v2 .hv-designed { background: #2c1310; padding: 160px 0; }
.home-v2 .hv-designed .hv-wrap { padding: 0 110px; }
.home-v2 .hv-designed h3 { font-family: var(--hv-sans); font-weight: 500; font-size: 14px; letter-spacing: 0.22em; color: var(--hv-gold); text-transform: uppercase; margin: 0 0 54px; text-align: center; }
.home-v2 .hv-df-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; }
.home-v2 .hv-df-label { font-family: var(--hv-sans); font-weight: 500; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hv-gold); margin: 0 0 24px; padding-bottom: 16px; border-bottom: 1px solid rgba(210,182,142,0.25); }
.home-v2 .hv-df-grid .hv-df-item { position: relative; font-family: var(--hv-body); font-style: normal; font-size: 21px; line-height: 2.5; opacity: 0.95; padding-left: 26px; }
.home-v2 .hv-df-grid .hv-df-item::before { content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 1px; background: linear-gradient(180deg, var(--hv-gold-dim) 0%, rgba(165,144,109,0.15) 85%, transparent 100%); }
.home-v2 .hv-df-grid .hv-df-item::after { content: ''; position: absolute; left: -3px; top: 50%; width: 7px; height: 7px; border: 1px solid var(--hv-gold-dim); background: #2c1310; transform: translateY(-50%) rotate(45deg); }

/* ---------- executive & corporate ---------- */
.home-v2 .hv-executive { padding: 170px 0; text-align: center; }
.home-v2 .hv-executive .hv-eyebrow { color: #c2876c; }
.home-v2 .hv-executive .hv-divider { margin: 0 0 34px; }
.home-v2 .hv-executive p { font-family: var(--hv-body); font-style: normal; font-size: 19px; letter-spacing: 0.015em; line-height: 1.8; color: var(--hv-soft-gold); opacity: 0.92; max-width: 60ch; margin: 0 auto 34px; }

/* ---------- twin teaser ---------- */
.home-v2 .hv-twin { display: grid; grid-template-columns: 1fr 1fr; }
.home-v2 .hv-twin .cell { position: relative; min-height: 640px; overflow: hidden; }
.home-v2 .hv-twin .cell::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(10,8,6,0.82) 100%); z-index: 1; }
.home-v2 .hv-twin .cell-copy { position: absolute; left: 56px; right: 56px; bottom: 28px; z-index: 2; }
.home-v2 .hv-twin .cell-copy h2 { font-family: var(--hv-serif); font-weight: 400; font-size: 25px; line-height: 1.35; color: var(--hv-gold); margin: 0 0 24px; }
.home-v2 .hv-twin .cell-copy .hv-link { color: var(--hv-soft-gold); }

/* ---------- pull quote ---------- */
.home-v2 .hv-quote { padding: 170px 0; text-align: center; }
.home-v2 .hv-quote .hv-divider { margin: 0 0 52px; }
.home-v2 .hv-quote p { font-family: var(--hv-serif); font-style: normal; letter-spacing: 0.02em; font-size: 28px; line-height: 1.5; color: var(--hv-gold); max-width: 820px; margin: 0 auto; }

/* ---------- filmstrip ---------- */
.home-v2 .hv-filmstrip { display: grid; grid-template-columns: repeat(3, 1fr); }
.home-v2 .hv-filmstrip figure { margin: 0; position: relative; }
.home-v2 .hv-filmstrip .frame { width: 100%; aspect-ratio: 4/3; overflow: hidden; background: #241d18; }
.home-v2 .hv-filmstrip figcaption { padding: 22px 0; text-align: center; font-family: var(--hv-body); font-style: italic; font-size: 15px; color: var(--hv-gold); opacity: 0.92; }

.home-v2 .hv-grant { text-align: center; padding: 70px 64px 110px; font-family: var(--hv-body); font-style: italic; font-size: 19px; color: var(--hv-gold-dim); opacity: 0.8; margin: 0; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  .home-v2 .hv-wrap { padding: 0 40px; }
  .home-v2 .hv-designed .hv-wrap { padding: 0 40px; }
  .home-v2 .hv-house h2 { font-size: 38px; }
  .home-v2 .hv-df-grid { gap: 36px; }
  .home-v2 .hv-df-grid .hv-df-item { font-size: 18px; line-height: 2.2; }
}

@media (max-width: 900px) {
  .home-v2 .hv-wrap { padding: 0 28px; }
  .home-v2 .hv-designed .hv-wrap { padding: 0 28px; }
  .home-v2 .hv-house { padding: 110px 0 100px; }
  .home-v2 .hv-house-grid { grid-template-columns: 1fr; gap: 40px; }
  .home-v2 .hv-house-secondary { flex-direction: column; align-items: stretch; gap: 24px; margin-top: 24px; }
  .home-v2 .hv-house-secondary .a, .home-v2 .hv-house-secondary .b { width: 100%; }
  .home-v2 .hv-twin { grid-template-columns: 1fr; }
  .home-v2 .hv-twin .cell { min-height: 420px; }
  .home-v2 .hv-twin .cell-copy { left: 28px; right: 28px; }
  .home-v2 .hv-designed { padding: 100px 0; }
  .home-v2 .hv-df-grid { grid-template-columns: 1fr; gap: 44px; }
  .home-v2 .hv-executive { padding: 100px 0; }
  .home-v2 .hv-quote { padding: 100px 0; }
  .home-v2 .hv-quote p { font-size: 23px; }
  .home-v2 .hv-filmstrip { grid-template-columns: 1fr; }
  .home-v2 .hv-hero-mark { font-size: 28px; }
  .home-v2 .hv-hero-tag { font-size: 12.5px; letter-spacing: 0.2em; padding: 0 24px; }
  .home-v2 .hv-grant { padding: 56px 28px 80px; font-size: 16px; }
}
