/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   global.css — Design Tokens & Base Reset
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
:root {
  --cream:        #FAF8F5;
  --cream2:       #F3EFE9;
  --warm:         #EDE7DC;
  --gold:         #f3b932;
  /* F5A623 */
  --gold-lt:      #FFD07B;
  --gold-dk:      #C47F0A;
  --charcoal:     #1C1917;
  --mid:          #6B6560;
  --light:        #A09890;
  --border-light: rgba(28,25,23,.09);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
body  { font-family: 'Plus Jakarta Sans', sans-serif; background: var(--cream); color: var(--charcoal); overflow-x: hidden; }

::-webkit-scrollbar       { width: 4px; }
::-webkit-scrollbar-track { background: var(--cream2); }
::-webkit-scrollbar-thumb { background: var(--gold); }

/* Custom cursor */
.cursor      { position:fixed; width:8px; height:8px; background:var(--gold); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .3s,height .3s; mix-blend-mode:multiply; }
.cursor-ring { position:fixed; width:36px; height:36px; border:1px solid rgba(245,166,35,.5); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s; }

/* Layout */
section    { padding: 96px 0; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }

/* Section labels & titles */
.sec-label { display:inline-flex; align-items:center; gap:10px; font-size:.66rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-dk); margin-bottom:14px; }
.sec-label::before { content:''; width:22px; height:1px; background:var(--gold); }
.sec-title { font-family:'Cormorant Garamond',serif; font-size:clamp(1.9rem,3.2vw,2.9rem); font-weight:600; line-height:1.07; letter-spacing:-.02em; color:var(--charcoal); margin-bottom:14px; }
.sec-title em { color:var(--gold-dk); font-style:italic; }
.sec-sub      { font-size:.88rem; color:var(--mid); line-height:1.72; max-width:500px; }

/* Shared buttons */
.btn-primary-lux { display:inline-flex; align-items:center; gap:10px; font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; background:var(--gold); color:var(--charcoal); padding:16px 36px; position:relative; overflow:hidden; transition:color .35s; text-decoration:none; border:none; cursor:pointer; }
.btn-primary-lux::before { content:''; position:absolute; inset:0; background:var(--charcoal); transform:translateX(-101%); transition:transform .4s cubic-bezier(.77,0,.175,1); }
.btn-primary-lux:hover { color:var(--cream); }
.btn-primary-lux:hover::before { transform:translateX(0); }
.btn-primary-lux span, .btn-primary-lux svg { position:relative; z-index:1; }

.btn-outline-dk { padding:13px 26px; background:transparent; color:var(--charcoal); font-family:'Plus Jakarta Sans',sans-serif; font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; border:1.5px solid rgba(28,25,23,.18); border-radius:11px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:6px; transition:border-color .25s,background .25s,color .25s,transform .2s; }
.btn-outline-dk:hover { border-color:var(--gold); color:var(--gold-dk); background:rgba(245,166,35,.06); transform:translateY(-2px); }

.btn-outline-lux { display:inline-flex; align-items:center; gap:10px; font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; background:transparent; color:rgba(245,223,178,.8); padding:15px 36px; border:1px solid rgba(245,223,178,.25); position:relative; overflow:hidden; transition:color .35s,border-color .35s; text-decoration:none; cursor:pointer; }
.btn-outline-lux::before { content:''; position:absolute; inset:0; background:var(--gold); transform:translateX(-101%); transition:transform .4s cubic-bezier(.77,0,.175,1); }
.btn-outline-lux:hover { color:var(--charcoal); border-color:var(--gold); }
.btn-outline-lux:hover::before { transform:translateX(0); }
.btn-outline-lux span { position:relative; z-index:1; }

.badge-lux { display:inline-flex; align-items:center; gap:6px; font-family:'Plus Jakarta Sans',sans-serif; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-dk); padding:7px 16px; border:1px solid rgba(245,166,35,.35); background:rgba(245,166,35,.07); margin-bottom:1.5rem; }

/* Reveal animations */
.reveal       { opacity:0; transform:translateY(32px); transition:opacity .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1); }
.reveal-left  { opacity:0; transform:translateX(-40px); transition:opacity .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1); }
.reveal-right { opacity:0; transform:translateX(40px);  transition:opacity .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1); }
.reveal.visible, .reveal-left.visible, .reveal-right.visible { opacity:1; transform:none; }

@keyframes pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:.6; transform:scale(.8); }
}

@media (max-width:640px) {
  section    { padding:66px 0; }
  .container { padding:0 22px; }
}
