/* =========================================================
   YOUR EVENT STYLIST — official palette
   Blush #FFE2E7 · Gold #E7C53A · Ink #1A1A1A · Plum (nav/footer) #673147
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&display=swap');

:root{
  /* --- official brand colors --- */
  --blush:      #614051;
  --blush-lt:   #F1E4E8;
  --blush-dp:   #452D39;
  --gold:       #E7C53A;
  --gold-deep:  #96751D;
  --gold-soft:  #F0DA78;
  --ink:        #1A1A1A;
  --ink-soft:   rgba(26,26,26,0.7);
  --ink-faint:  rgba(26,26,26,0.44);

  /* --- nav pastel surface (floats above the dark page, needs to read as a control) --- */
  --plum:       #F8EBEC;
  --plum-deep:  #F1DBDF;
  --plum-light: #FFFFFF;

  /* --- neutral dark, used for dramatic panels (hero scrims, curtain, CTA bands) --- */
  --ink-deep:   #241E1B;
  --ink-deep-2: #140F0D;

  /* --- derived surfaces --- */
  --paper:      #FFFDFB;
  --hairline:   rgba(26,26,26,0.12);
  --hairline-gold: rgba(231,197,58,0.55);
  --hairline-plum: rgba(26,26,26,0.12);
  --hairline-ivory: rgba(251,246,241,0.16);
  --ivory:      #FBF6F1;
  --ivory-dim:  rgba(251,246,241,0.74);
  --ivory-faint:rgba(251,246,241,0.44);

  /* type */
  --font-display: 'Fraunces', serif;
  --font-body: 'General Sans', sans-serif;

  /* layout */
  --max-width: 1280px;
  --radius: 18px;
  --shadow-deep: 0 30px 90px rgba(20,15,13,0.3);
  --shadow-card: 0 20px 50px rgba(20,12,16,0.28);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

html,body{
  margin:0;
  min-height:100%;
  background:
    radial-gradient(ellipse 1100px 650px at 50% -8%, rgba(231,197,58,0.14), transparent 60%),
    radial-gradient(ellipse 900px 700px at 100% 100%, rgba(97,64,81,0.5), transparent 55%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><g fill='none' stroke='%23E7C53A' stroke-width='1' opacity='0.07'><circle cx='0' cy='0' r='30'/><circle cx='0' cy='0' r='60'/><circle cx='0' cy='0' r='90'/><circle cx='200' cy='0' r='30'/><circle cx='200' cy='0' r='60'/><circle cx='200' cy='0' r='90'/><circle cx='0' cy='200' r='30'/><circle cx='0' cy='200' r='60'/><circle cx='0' cy='200' r='90'/><circle cx='200' cy='200' r='30'/><circle cx='200' cy='200' r='60'/><circle cx='200' cy='200' r='90'/></g></svg>"),
    var(--blush);
  color:var(--ivory-dim);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}

/* fine grain, fixed across the whole site for a tactile, atmospheric finish */
body::before{
  content:'';
  position:fixed; inset:0; pointer-events:none; z-index:2;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='1' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.05'/></svg>");
  mix-blend-mode:overlay;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

::selection{ background:var(--gold); color:var(--ink); }

:focus-visible{
  outline:1.5px solid var(--gold-deep);
  outline-offset:3px;
}

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

/* ---------- typography utilities ---------- */
.eyebrow{
  display:flex; align-items:center; gap:14px;
  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-soft); font-weight:600;
}
.eyebrow::before{
  content:''; width:34px; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .9s cubic-bezier(.2,.8,.2,1);
}
.in-view .eyebrow::before{ transform:scaleX(1); }
.eyebrow--on-dark{ color:var(--gold-soft); }

h1,h2,h3,.display{
  font-family:var(--font-display);
  color:var(--ivory);
  font-weight:600;
  letter-spacing:-.01em;
  margin:0;
}
.italic{ font-style:italic; font-weight:500; color:var(--gold-soft); }

p{ line-height:1.7; color:var(--ivory-dim); margin:0; }

/* content sitting on a white/paper surface reads dark, regardless of page bg */
.card h1, .card h2, .card h3, .card .display,
.process-step h3, .policy-contact-card h2{ color:var(--ink); }
.card p, .process-step p{ color:var(--ink-soft); }
.policy-callout{ color:var(--ink-soft); }

.hairline{ height:1px; background:linear-gradient(90deg,transparent,var(--hairline-gold),transparent); }

/* ---------- reveal-on-scroll ---------- */
.reveal{
  opacity:0; transform:translateY(36px);
  transition:opacity 1s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1);
}
.reveal.in-view{ opacity:1; transform:translateY(0); }
@media(prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- framed image (signature motif — the styling tag) ---------- */
.framed{ position:relative; }
.framed img{ width:100%; height:100%; object-fit:cover; border-radius:3px; }
.framed::before,.framed::after{
  content:''; position:absolute; width:26px; height:26px;
  border-color:var(--gold); pointer-events:none; transition:width .5s ease,height .5s ease;
}
.framed::before{ top:-9px; left:-9px; border-top:1.5px solid var(--gold); border-left:1.5px solid var(--gold); }
.framed::after{ bottom:-9px; right:-9px; border-bottom:1.5px solid var(--gold); border-right:1.5px solid var(--gold); }
.framed:hover::before,.framed:hover::after{ width:34px; height:34px; }

.photo-grade{ filter:saturate(1.06) contrast(1.02) brightness(1.01); }

/* ---------- swatch tag ---------- */
.swatch-tag{
  position:absolute; top:18px; right:18px; z-index:2;
  display:flex; align-items:center; gap:6px;
  padding:6px 12px 6px 8px; border-radius:20px;
  background:rgba(255,253,251,0.86); backdrop-filter:blur(6px);
  border:1px solid var(--hairline-gold);
  font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep);
  box-shadow:0 8px 20px rgba(26,26,26,0.08);
}
.swatch-dot{ width:9px; height:9px; border-radius:50%; flex:none; box-shadow:0 0 0 1px rgba(0,0,0,.1) inset; }

/* ---------- surface cards (content sits on white against blush) ---------- */
.card{
  background:var(--paper);
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px; border-radius:3px;
  font-family:var(--font-body); font-size:.78rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  border:1px solid var(--gold); color:var(--gold-deep);
  background:transparent; cursor:pointer;
  transition:background .4s ease,color .4s ease,transform .4s ease,box-shadow .4s ease;
}
.btn:hover{
  background:var(--gold); color:var(--ink);
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(231,197,58,0.35);
}
.btn--solid{ background:var(--ink); color:var(--ivory); border-color:var(--ink); }
.btn--solid:hover{ background:var(--gold); color:var(--ink); border-color:var(--gold); }
.btn--ghost{ border-color:var(--ink-faint); color:var(--ink-soft); }
.btn--ghost:hover{ background:var(--ink); color:var(--ivory); border-color:var(--ink); box-shadow:0 18px 40px rgba(26,26,26,0.18); }
.btn--on-dark{ border-color:var(--gold); color:var(--gold-soft); }
.btn--on-dark:hover{ background:var(--gold); color:var(--ink); }

/* ============ PILL NAV (plum, uses the real logo mark) ============ */
.pill-nav{
  position:fixed; top:20px; left:50%; transform:translateX(-50%);
  width:min(600px,92vw);
  padding:0 14px 0 22px; height:70px;
  background:linear-gradient(135deg,var(--plum-light),var(--plum));
  border:1px solid var(--hairline-gold);
  display:flex; align-items:center; justify-content:space-between;
  border-radius:50px;
  box-shadow:0 18px 44px rgba(26,26,26,0.14), 0 2px 10px rgba(26,26,26,0.06);
  z-index:1001;
  backdrop-filter:blur(14px);
}

.pill-logo{ display:flex; align-items:center; gap:12px; }
.pill-logo img{ height:36px; width:auto; display:block; }
.pill-logo .pv-tag{
  font-family:var(--font-display); font-style:italic; font-weight:500; font-size:1rem;
  color:var(--ink); white-space:nowrap;
}
@media(max-width:560px){ .pill-logo .pv-tag{ display:none; } }

.menu-btn{
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--hairline-gold); background:transparent;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; position:relative;
}
.menu-btn span{
  position:absolute; width:16px; height:1px; background:var(--ink);
  transition:transform .35s ease, opacity .35s ease, top .35s ease;
}
.menu-btn span:nth-child(1){ top:15px; }
.menu-btn span:nth-child(2){ top:21px; }
.menu-btn.active span:nth-child(1){ top:18px; transform:rotate(45deg); }
.menu-btn.active span:nth-child(2){ top:18px; transform:rotate(-45deg); }

/* ---------- overlay menu ---------- */
.pill-overlay{
  position:fixed; inset:0; z-index:1000;
  background:
    radial-gradient(ellipse 900px 600px at 50% 0%, rgba(231,197,58,0.16), transparent 60%),
    linear-gradient(160deg,var(--plum-light),var(--plum-deep));
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .5s ease;
}
.pill-overlay.active{ opacity:1; pointer-events:all; }
.overlay-label{
  position:absolute; top:42px; font-size:.72rem; letter-spacing:.3em; color:var(--gold-deep); text-transform:uppercase;
}
.overlay-links{ list-style:none; margin:0; padding:0; text-align:center; }
.overlay-links li{
  margin:22px 0; transform:translateY(18px); opacity:0;
  transition:transform .5s ease, opacity .5s ease; transition-delay:calc(var(--i) * .08s);
}
.pill-overlay.active .overlay-links li{ transform:translateY(0); opacity:1; }
.overlay-links li a{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.8rem,4vw,2.6rem); color:var(--ink); transition:color .3s;
}
.overlay-links li a:hover{ color:var(--gold-deep); }
.overlay-foot{ position:absolute; bottom:42px; font-size:.74rem; letter-spacing:.08em; color:var(--ink-faint); }
.overlay-foot a{ color:var(--gold-deep); }

/* ============ shared page hero header ============ */
.page-hero{
  max-width:var(--max-width); margin:0 auto; padding:170px 28px 50px; text-align:center;
}
.page-hero .eyebrow{ justify-content:center; }
.page-hero .eyebrow::before{ display:none; }
.page-hero h1{ font-size:clamp(2.6rem,5.6vw,4.4rem); margin:18px 0 20px; line-height:1.05; }
.page-hero p{ max-width:58ch; margin:0 auto; font-size:1.05rem; }

/* ============ CINEMATIC FOOTER — the finale ============ */
footer.site-footer{
  margin-top:130px;
  background:
    radial-gradient(ellipse 900px 600px at 15% 0%, rgba(231,197,58,0.1), transparent 60%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><g fill='none' stroke='%23E7C53A' stroke-width='1' opacity='0.06'><circle cx='0' cy='0' r='30'/><circle cx='0' cy='0' r='60'/><circle cx='0' cy='0' r='90'/><circle cx='200' cy='0' r='30'/><circle cx='200' cy='0' r='60'/><circle cx='200' cy='0' r='90'/><circle cx='0' cy='200' r='30'/><circle cx='0' cy='200' r='60'/><circle cx='0' cy='200' r='90'/><circle cx='200' cy='200' r='30'/><circle cx='200' cy='200' r='60'/><circle cx='200' cy='200' r='90'/></g></svg>"),
    linear-gradient(175deg,var(--blush),var(--blush-dp));
  color:var(--ivory-dim);
  position:relative;
  overflow:hidden;
}

/* -- closing scene: full-bleed image + statement, the "final act" -- */
.footer-cinematic{
  position:relative; min-height:520px;
  display:flex; align-items:center; justify-content:center;
  background-size:cover; background-position:center;
  overflow:hidden;
  text-align:center;
}
.footer-cinematic-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,15,13,0.4) 0%, rgba(20,15,13,0.72) 58%, rgba(20,15,13,0.9) 100%);
}
.footer-cinematic::after{
  content:'';
  position:absolute; inset:0; pointer-events:none; z-index:1;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='1' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.05'/></svg>");
  mix-blend-mode:overlay;
}
.footer-cinematic-content{ position:relative; z-index:2; padding:70px 28px; max-width:820px; }
.footer-cinematic-content .eyebrow{ justify-content:center; }
.footer-sparkle{
  display:flex; align-items:center; justify-content:center; gap:20px; margin:26px 0 8px;
  color:var(--gold-soft); font-size:.8rem;
}
.footer-sparkle::before, .footer-sparkle::after{
  content:''; width:90px; height:1px; background:linear-gradient(90deg,transparent,var(--hairline-gold));
}
.footer-sparkle::after{ background:linear-gradient(270deg,transparent,var(--hairline-gold)); }
.footer-cinematic-content h2{
  color:var(--ivory); font-size:clamp(2.3rem,5.6vw,4.4rem); line-height:1.1; margin:18px 0 40px;
  letter-spacing:-.01em;
}
.footer-cinematic-content .gold-italic{ font-style:italic; color:var(--gold-soft); }
.footer-signature{
  font-family:var(--font-display); font-style:italic; font-size:1rem; color:var(--ivory-faint);
  margin-top:34px; letter-spacing:.03em;
}

/* -- info columns: asymmetric, with a ghosted watermark of the real logo -- */
.footer-top{
  position:relative; z-index:2; max-width:var(--max-width); margin:0 auto;
  padding:90px 28px 60px;
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:50px;
  border-top:1px solid var(--hairline-ivory);
  overflow:hidden;
}
.footer-watermark{
  position:absolute; right:-40px; top:50%; transform:translateY(-50%);
  height:340px; opacity:.05; pointer-events:none; z-index:0;
  filter:grayscale(1) brightness(3);
}
.footer-brand{ position:relative; z-index:1; }
.footer-brand img{ height:46px; margin-bottom:18px; }
.footer-brand .footer-brand-name{
  font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--ivory);
  display:block; margin-bottom:14px;
}
.footer-brand p{ color:var(--ivory-faint); max-width:32ch; font-size:.92rem; }
.footer-col{ position:relative; z-index:1; }
.footer-col h4{
  font-family:var(--font-body); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold-soft); margin-bottom:20px; font-weight:600;
}
.footer-links{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.footer-links a{ font-size:.92rem; color:var(--ivory-dim); transition:color .3s, padding-left .3s; }
.footer-links a:hover{ color:var(--gold-soft); padding-left:4px; }
.footer-contact{ display:flex; flex-direction:column; gap:12px; font-size:.92rem; }
.footer-contact a{ color:var(--ivory-dim); transition:color .3s; }
.footer-contact a i{ margin-right:6px; color:var(--gold-soft); }
.footer-contact a:hover{ color:var(--gold-soft); }

.footer-socials{ display:flex; gap:14px; margin-top:22px; }
.footer-socials a{
  width:40px; height:40px; border-radius:50%; border:1px solid var(--hairline-gold);
  display:grid; place-items:center; color:var(--gold-soft);
  transition:background .3s,transform .3s,color .3s;
}
.footer-socials a:hover{ background:var(--gold); color:var(--ink); transform:translateY(-3px); }

/* -- the "Join the List" band: full-width, its own moment, not crammed into a column -- */
.footer-newsletter-section{
  position:relative; z-index:2; max-width:var(--max-width); margin:0 auto 56px; padding:0 28px;
}
.footer-newsletter-card{
  border:1px solid var(--hairline-gold); border-radius:20px;
  padding:36px 42px; background:rgba(251,246,241,0.04); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;
}
.footer-newsletter-text h4{
  font-family:var(--font-display); font-style:italic; font-size:1.4rem; color:var(--ivory);
  margin-bottom:6px; font-weight:500;
}
.footer-newsletter-text p{ font-size:.86rem; color:var(--ivory-faint); max-width:42ch; }
.footer-newsletter-form{ display:flex; gap:10px; flex:none; min-width:340px; }
.footer-newsletter-form input{
  flex:1; background:rgba(0,0,0,0.18); border:1px solid var(--hairline-ivory);
  border-radius:30px; color:var(--ivory); font-family:var(--font-body); font-size:.88rem;
  padding:13px 20px; outline:none; transition:border-color .3s ease;
}
.footer-newsletter-form input::placeholder{ color:var(--ivory-faint); }
.footer-newsletter-form input:focus{ border-color:var(--gold); }
.footer-newsletter-form button{
  background:var(--gold); border:none; color:var(--ink); cursor:pointer;
  font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:13px 26px; border-radius:30px; transition:background .3s ease, transform .3s ease;
  white-space:nowrap;
}
.footer-newsletter-form button:hover{ background:var(--gold-soft); transform:translateY(-2px); }
.footer-newsletter-form button[disabled]{ opacity:.55; cursor:not-allowed; transform:none; }
.footer-newsletter-notice{
  font-size:.78rem; margin-top:14px; display:none; line-height:1.5; width:100%;
}
.footer-newsletter-notice.show{ display:block; }
.footer-newsletter-notice.success{ color:var(--gold-soft); }
.footer-newsletter-notice.error{ color:#e88; }
@media(max-width:760px){
  .footer-newsletter-card{ flex-direction:column; align-items:flex-start; padding:30px 26px; }
  .footer-newsletter-form{ width:100%; min-width:0; }
}

.footer-bottom{
  position:relative; z-index:2; border-top:1px solid var(--hairline-ivory);
  padding:26px 28px; max-width:var(--max-width); margin:0 auto;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
  font-size:.76rem; color:var(--ivory-faint); letter-spacing:.03em;
}
.footer-bottom a{ color:var(--ivory-faint); transition:color .3s; }
.footer-bottom a:hover{ color:var(--gold-soft); }

@media(max-width:980px){
  .footer-top{ grid-template-columns:1fr 1fr; gap:44px 30px; }
  .footer-watermark{ display:none; }
}
@media(max-width:560px){
  .footer-cinematic{ min-height:400px; }
  .footer-top{ grid-template-columns:1fr; padding:70px 24px 40px; }
  .footer-bottom{ flex-direction:column; text-align:center; }
}
