/* luxury.css — premium visual identity:Luxury Dark + Gold
 Owns:CSS custom properties,typography,scroll animations,shared luxury components
 Does NOT own:header/nav (header.css),page-specific layouts */

/* ─── FONTS (preloaded in HTML head) ─────────────────────── */
/* Playfair Display:headings / Cormorant Garamond:accents / Inter:body */

/* ─── PALETTE ────────────────────────────────────────────── */
:root{
 /* Core */
 --gold:#c9a96e;
 --gold-light:#e8d5a3;
 --gold-deep:#b08d4a;
 --gold-glow:rgba(201,169,110,0.12);
 --gold-border:rgba(201,169,110,0.18);
 --gold-shadow:0 8px 32px rgba(201,169,110,0.18);

 /* Backgrounds */
 --bg-deep:#0a0a0a;
 --bg:#0f0f0f;
 --bg-elevated:#161616;
 --bg-card:#131313;
 --surface:#1a1a1a;

 /* Text — blanc cassé,not harsh white */
 --text-primary:#f5f0eb;
 --text-secondary:rgba(245,240,235,0.65);
 --text-muted:rgba(245,240,235,0.38);
 --text-gold:var(--gold);

 /* Borders & Dividers */
 --border:rgba(245,240,235,0.06);
 --border-subtle:rgba(245,240,235,0.04);

 /* Radii */
 --radius-sm:8px;
 --radius-md:16px;
 --radius-lg:24px;
 --radius-xl:32px;

 /* Shadows */
 --shadow-card:0 2px 20px rgba(0,0,0,0.35);
 --shadow-hover:0 16px 48px rgba(201,169,110,0.12);
 --shadow-elevated:0 4px 30px rgba(0,0,0,0.5);

 /* Timing */
 --ease-luxury:cubic-bezier(0.25,0.1,0.25,1);
 --ease-out:cubic-bezier(0,0,0.25,1);
 --duration-fast:0.2s;
 --duration-normal:0.3s;
 --duration-slow:0.5s;
}

/* ─── GLOBAL RESET + BASE ────────────────────────────────── */
*,*::before,*::after{
 margin:0;
 padding:0;
 box-sizing:border-box;
}

html{
 scroll-behavior:smooth;
 -webkit-text-size-adjust:100%;
}

body{
 font-family:'Inter','Satoshi',system-ui,sans-serif;
 font-weight:300;
 font-size:16px;
 line-height:1.6;
 background:var(--bg-deep);
 color:var(--text-primary);
 overflow-x:hidden;
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
}

/* ─── TYPOGRAPHY ─────────────────────────────────────────── */
h1,h2,h3{
 font-family:'Playfair Display','Cormorant Garamond','Georgia',serif;
 font-weight:700;
 line-height:1.1;
 letter-spacing:-0.01em;
 color:var(--text-primary);
}

h1{font-size:clamp(2.8rem,6vw,4.8rem);}
h2{font-size:clamp(2rem,4vw,3.2rem);}
h3{font-size:clamp(1.2rem,2vw,1.6rem);}

h1 em,h2 em,h3 em{
 font-style:italic;
 color:var(--gold);
}

/* Elegant eyebrow / label text */
.lux-eyebrow{
 font-family:'Inter',sans-serif;
 font-size:0.7rem;
 font-weight:600;
 text-transform:uppercase;
 letter-spacing:0.22em;
 color:var(--gold);
 display:inline-flex;
 align-items:center;
 gap:0.75rem;
}

.lux-eyebrow::before,
.lux-eyebrow::after{
 content:'';
 display:inline-block;
 width:32px;
 height:1px;
 background:var(--gold);
 opacity:0.5;
}

/* Section title style */
.lux-section-title{
 font-family:'Playfair Display',serif;
 font-size:clamp(2rem,4vw,3rem);
 font-weight:700;
 color:var(--text-primary);
 line-height:1.1;
 letter-spacing:-0.01em;
}

.lux-section-sub{
 font-family:'Inter',sans-serif;
 font-weight:300;
 font-size:1.05rem;
 color:var(--text-secondary);
 line-height:1.7;
 max-width:560px;
}

/* ─── BUTTONS ────────────────────────────────────────────── */
.btn-gold{
 display:inline-flex;
 align-items:center;
 gap:0.5rem;
 background:transparent;
 color:var(--gold);
 border:1.5px solid var(--gold);
 padding:0.85rem 2.2rem;
 font-family:'Inter',sans-serif;
 font-size:0.82rem;
 font-weight:600;
 letter-spacing:0.08em;
 text-transform:uppercase;
 text-decoration:none;
 border-radius:0;
 cursor:pointer;
 transition:all var(--duration-normal) var(--ease-luxury);
 position:relative;
 overflow:hidden;
}

.btn-gold::before{
 content:'';
 position:absolute;
 inset:0;
 background:var(--gold);
 transform:scaleX(0);
 transform-origin:left;
 transition:transform var(--duration-normal) var(--ease-luxury);
 z-index:-1;
}

.btn-gold:hover{
 color:#0a0a0a;
 border-color:var(--gold);
}

.btn-gold:hover::before{
 transform:scaleX(1);
}

.btn-gold-filled{
 display:inline-flex;
 align-items:center;
 gap:0.5rem;
 background:var(--gold);
 color:#0a0a0a;
 border:1.5px solid var(--gold);
 padding:0.85rem 2.2rem;
 font-family:'Inter',sans-serif;
 font-size:0.82rem;
 font-weight:600;
 letter-spacing:0.08em;
 text-transform:uppercase;
 text-decoration:none;
 border-radius:0;
 cursor:pointer;
 transition:all var(--duration-normal) var(--ease-luxury);
}

.btn-gold-filled:hover{
 background:var(--gold-deep);
 border-color:var(--gold-deep);
 transform:translateY(-2px);
 box-shadow:var(--gold-shadow);
}

/* ─── SCROLL ANIMATIONS ──────────────────────────────────── */
.reveal{
 opacity:0;
 transform:translateY(30px);
 transition:opacity 0.7s var(--ease-out),transform 0.7s var(--ease-out);
}

.reveal.visible{
 opacity:1;
 transform:translateY(0);
}

.reveal-delay-1{transition-delay:0.1s;}
.reveal-delay-2{transition-delay:0.2s;}
.reveal-delay-3{transition-delay:0.3s;}
.reveal-delay-4{transition-delay:0.4s;}

/* Respect reduced motion */
@media (prefers-reduced-motion:reduce){
 .reveal{
 opacity:1;
 transform:none;
 transition:none;
}
 *{
 animation-duration:0.01ms !important;
 animation-iteration-count:1 !important;
 transition-duration:0.01ms !important;
}
}

/* ─── GOLD DIVIDER ───────────────────────────────────────── */
.gold-divider{
 width:60px;
 height:1px;
 background:linear-gradient(90deg,transparent,var(--gold),transparent);
 margin:1.5rem 0;
}

.gold-divider-center{
 margin-left:auto;
 margin-right:auto;
}

/* ─── HERO ───────────────────────────────────────────────── */
.lux-hero{
 position:relative;
 min-height:100vh;
 display:flex;
 flex-direction:column;
 justify-content:flex-start;
 align-items:center;
 text-align:center;
 padding:8rem 2rem 0;
 overflow:hidden;
 padding-top:clamp(6rem,12vh,9rem);
}

.lux-hero-bg{
 position:absolute;
 inset:0;
 z-index:0;
}

.lux-hero-bg img,
.lux-hero-bg video{
 width:100%;
 height:100%;
 object-fit:cover;
}

.lux-hero-overlay{
 position:absolute;
 inset:0;
 background:
 linear-gradient(180deg,
 rgba(10,10,10,0.55) 0%,
 rgba(10,10,10,0.4) 40%,
 rgba(10,10,10,0.65) 70%,
 rgba(10,10,10,0.92) 100%);
 z-index:1;
}

/* Subtle vignette */
.lux-hero-overlay::after{
 content:'';
 position:absolute;
 inset:0;
 background:radial-gradient(ellipse at center,transparent 50%,rgba(10,10,10,0.4) 100%);
}

.lux-hero-content{
 position:relative;
 z-index:2;
 max-width:800px;
}

.lux-hero-content h1{
 margin-bottom:1rem;
 text-shadow:0 2px 40px rgba(0,0,0,0.3);
}

.lux-hero-sub{
 font-family:'Inter',sans-serif;
 font-weight:300;
 font-size:clamp(1rem,1.8vw,1.15rem);
 color:rgba(245,240,235,0.7);
 letter-spacing:0.02em;
 margin-bottom:2.5rem;
 line-height:1.7;
}

.lux-hero-ctas{
 display:flex;
 gap:1.2rem;
 justify-content:center;
 flex-wrap:wrap;
}

/* Scroll indicator — animated chevron */
.lux-scroll-indicator{
 position:absolute;
 bottom:2.5rem;
 left:50%;
 transform:translateX(-50%);
 z-index:2;
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:0.5rem;
 animation:scrollPulse 2s ease-in-out infinite;
}

.lux-scroll-indicator span{
 font-size:0.65rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--gold);
 opacity:0.6;
}

.lux-scroll-chevron{
 width:20px;
 height:20px;
 border-right:1.5px solid var(--gold);
 border-bottom:1.5px solid var(--gold);
 transform:rotate(45deg);
 opacity:0.5;
}

@keyframes scrollPulse{
 0%,100%{opacity:0.5;transform:translateX(-50%) translateY(0);}
 50%{opacity:1;transform:translateX(-50%) translateY(8px);}
}

/* ─── STATS BAR ──────────────────────────────────────────── */
.lux-stats{
 padding:4rem 0;
 background:var(--bg-deep);
 border-top:1px solid var(--border);
 border-bottom:1px solid var(--border);
}

.lux-stats-grid{
 max-width:1100px;
 margin:0 auto;
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:2rem;
 padding:0 2rem;
 text-align:center;
}

.lux-stat{
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:0.4rem;
}

.lux-stat-number{
 font-family:'Playfair Display',serif;
 font-size:clamp(2.2rem,4vw,3.2rem);
 font-weight:700;
 color:var(--gold);
 line-height:1;
}

.lux-stat-label{
 font-family:'Inter',sans-serif;
 font-size:0.75rem;
 font-weight:500;
 text-transform:uppercase;
 letter-spacing:0.15em;
 color:var(--text-muted);
}

/* ─── SERVICES ───────────────────────────────────────────── */
.lux-services{
 padding:6rem 0;
 background:var(--bg);
}

.lux-services-header{
 text-align:center;
 margin-bottom:4rem;
}

.lux-services-grid{
 max-width:1100px;
 margin:0 auto;
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:2.5rem;
 padding:0 2rem;
}

.lux-service{
 text-align:center;
 padding:2rem 1rem;
 border:1px solid var(--border);
 border-radius:2px;
 transition:all var(--duration-normal) var(--ease-luxury);
 background:transparent;
}

.lux-service:hover{
 border-color:var(--gold-border);
 background:rgba(201,169,110,0.03);
 transform:translateY(-4px);
}

.lux-service-icon{
 width:56px;
 height:56px;
 margin:0 auto 1.5rem;
 display:flex;
 align-items:center;
 justify-content:center;
 border:1px solid var(--gold-border);
 border-radius:50%;
 color:var(--gold);
 font-size:1.4rem;
 transition:all var(--duration-normal) var(--ease-luxury);
}

.lux-service:hover .lux-service-icon{
 background:var(--gold-glow);
 border-color:var(--gold);
 box-shadow:0 0 24px rgba(201,169,110,0.15);
}

.lux-service h3{
 font-family:'Inter',sans-serif;
 font-size:0.85rem;
 font-weight:600;
 letter-spacing:0.06em;
 color:var(--text-primary);
 margin-bottom:0.6rem;
}

.lux-service p{
 font-size:0.82rem;
 font-weight:300;
 color:var(--text-muted);
 line-height:1.6;
}

/* ─── TESTIMONIALS ───────────────────────────────────────── */
.lux-testimonials{
 padding:6rem 0;
 background:var(--bg-elevated);
 position:relative;
 overflow:hidden;
}

.lux-testimonials-header{
 text-align:center;
 margin-bottom:4rem;
}

.lux-testimonials-grid{
 max-width:1000px;
 margin:0 auto;
 padding:0 2rem;
 display:grid;
 grid-template-columns:repeat(2,1fr);
 gap:2rem;
}

.lux-testimonial{
 padding:2.5rem;
 border:1px solid var(--border);
 border-radius:2px;
 position:relative;
 transition:all var(--duration-normal) var(--ease-luxury);
}

.lux-testimonial:hover{
 border-color:var(--gold-border);
}

.lux-testimonial-quote{
 font-family:'Playfair Display',serif;
 font-size:3rem;
 color:var(--gold);
 opacity:0.3;
 line-height:1;
 margin-bottom:0.5rem;
}

.lux-testimonial p{
 font-family:'Inter',sans-serif;
 font-weight:300;
 font-size:0.95rem;
 line-height:1.75;
 color:var(--text-secondary);
 font-style:italic;
 margin-bottom:1.5rem;
}

.lux-testimonial-author{
 font-family:'Inter',sans-serif;
 font-size:0.78rem;
 font-weight:600;
 color:var(--text-primary);
 letter-spacing:0.04em;
}

.lux-testimonial-role{
 font-size:0.72rem;
 font-weight:400;
 color:var(--text-muted);
 margin-top:0.2rem;
}

/* ─── PROPERTY CARDS (premium) ───────────────────────────── */
.lux-prop-card{
 background:var(--bg-card);
 border:1px solid var(--border);
 border-radius:2px;
 overflow:hidden;
 text-decoration:none;
 color:inherit;
 display:flex;
 flex-direction:column;
 transition:all var(--duration-normal) var(--ease-luxury);
}

.lux-prop-card:hover{
 border-color:var(--gold-border);
 transform:translateY(-6px);
 box-shadow:var(--shadow-hover);
}

.lux-prop-img{
 position:relative;
 aspect-ratio:3/4;
 overflow:hidden;
 background:var(--bg-elevated);
}

.lux-prop-img img{
 width:100%;
 height:100%;
 object-fit:cover;
 transition:transform 0.6s var(--ease-luxury);
}

.lux-prop-card:hover .lux-prop-img img{
 transform:scale(1.05);
}

.lux-prop-badge{
 position:absolute;
 top:1rem;
 left:1rem;
 padding:0.3rem 0.8rem;
 background:var(--gold);
 color:#0a0a0a;
 font-family:'Inter',sans-serif;
 font-size:0.65rem;
 font-weight:700;
 letter-spacing:0.1em;
 text-transform:uppercase;
}

.lux-prop-body{
 padding:1.5rem;
 flex:1;
 display:flex;
 flex-direction:column;
}

.lux-prop-type{
 font-family:'Inter',sans-serif;
 font-size:0.65rem;
 font-weight:600;
 text-transform:uppercase;
 letter-spacing:0.12em;
 color:var(--gold);
 margin-bottom:0.5rem;
}

.lux-prop-title{
 font-family:'Playfair Display',serif;
 font-size:1.1rem;
 font-weight:700;
 color:var(--text-primary);
 line-height:1.3;
 margin-bottom:0.4rem;
}

.lux-prop-location{
 font-size:0.82rem;
 font-weight:300;
 color:var(--text-muted);
 margin-bottom:1rem;
}

.lux-prop-footer{
 margin-top:auto;
 padding-top:1rem;
 border-top:1px solid var(--border);
 display:flex;
 align-items:center;
 justify-content:space-between;
}

.lux-prop-price{
 font-family:'Playfair Display',serif;
 font-size:1.15rem;
 font-weight:700;
 color:var(--gold);
}

.lux-prop-price small{
 font-family:'Inter',sans-serif;
 font-size:0.72rem;
 font-weight:300;
 color:var(--text-muted);
}

.lux-prop-cta{
 font-family:'Inter',sans-serif;
 font-size:0.72rem;
 font-weight:600;
 letter-spacing:0.08em;
 text-transform:uppercase;
 color:var(--gold);
 text-decoration:none;
 transition:opacity var(--duration-fast);
}

.lux-prop-cta:hover{
 opacity:0.7;
}

/* ─── LUXURY FOOTER ──────────────────────────────────────── */
.lux-footer{
 background:#050505;
 padding:5rem 2rem 2rem;
 border-top:1px solid var(--border);
 text-align:center;
}

.lux-footer-logo{
 margin-bottom:1.5rem;
}

.lux-footer-logo img{
 height:40px;
 width:auto;
 filter:brightness(0) invert(0.85);
}

.lux-footer-tagline{
 font-family:'Inter',sans-serif;
 font-weight:300;
 font-size:0.88rem;
 color:var(--text-muted);
 max-width:400px;
 margin:0 auto 2rem;
 line-height:1.6;
}

.lux-footer-nav{
 display:flex;
 justify-content:center;
 gap:2.5rem;
 flex-wrap:wrap;
 margin-bottom:2.5rem;
}

.lux-footer-col{
 text-align:left;
 min-width:140px;
}

.lux-footer-col h4{
 font-family:'Inter',sans-serif;
 font-size:0.65rem;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:0.16em;
 color:var(--gold);
 opacity:0.6;
 margin-bottom:1rem;
}

.lux-footer-col a{
 display:block;
 font-size:0.85rem;
 font-weight:300;
 color:var(--text-muted);
 text-decoration:none;
 margin-bottom:0.6rem;
 transition:color var(--duration-fast);
}

.lux-footer-col a:hover{
 color:var(--gold);
}

.lux-footer-socials{
 display:flex;
 justify-content:center;
 gap:1rem;
 margin-bottom:2.5rem;
}

.lux-footer-social{
 width:38px;
 height:38px;
 border:1px solid var(--border);
 border-radius:50%;
 display:flex;
 align-items:center;
 justify-content:center;
 color:var(--text-muted);
 text-decoration:none;
 transition:all var(--duration-normal) var(--ease-luxury);
}

.lux-footer-social:hover{
 border-color:var(--gold);
 color:var(--gold);
 background:var(--gold-glow);
}

.lux-footer-social svg{
 width:15px;
 height:15px;
 fill:currentColor;
}

.lux-footer-bottom{
 padding-top:2rem;
 border-top:1px solid var(--border);
}

.lux-footer-bottom p{
 font-size:0.72rem;
 font-weight:300;
 color:rgba(245,240,235,0.2);
 letter-spacing:0.04em;
}

.lux-footer-bottom a{
 color:rgba(245,240,235,0.2);
 text-decoration:none;
 transition:color var(--duration-fast);
}

.lux-footer-bottom a:hover{
 color:var(--gold);
}

/* ─── LAYOUT UTILITIES ───────────────────────────────────── */
.lux-wrap{
 max-width:1200px;
 margin:0 auto;
 padding:0 2rem;
}

.lux-section{
 padding:6rem 0;
}

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:1024px){
 .lux-stats-grid{
 grid-template-columns:repeat(2,1fr);
 gap:2rem 3rem;
}
 .lux-services-grid{
 grid-template-columns:repeat(2,1fr);
}
}

@media (max-width:768px){
 .lux-hero{
 min-height:90vh;
 padding-top:clamp(5rem,10vh,7rem);
}

 .lux-stats-grid{
 grid-template-columns:repeat(2,1fr);
 gap:1.5rem;
}

 .lux-stat-number{
 font-size:clamp(1.8rem,6vw,2.4rem);
}

 .lux-services-grid{
 grid-template-columns:1fr;
 max-width:400px;
}

 .lux-testimonials-grid{
 grid-template-columns:1fr;
}

 .lux-hero-ctas{
 flex-direction:column;
 align-items:center;
}

 .btn-gold,.btn-gold-filled{
 width:100%;
 max-width:280px;
 justify-content:center;
}

 .lux-footer-nav{
 gap:2rem;
}
}

@media (max-width:480px){
 .lux-wrap{padding:0 1.2rem;}
 .lux-section{padding:4rem 0;}

 .lux-stats-grid{
 grid-template-columns:1fr 1fr;
 gap:1.2rem;
}

 .lux-eyebrow::before,
 .lux-eyebrow::after{
 width:20px;
}
}