/* Page: first-visit.html */
body{padding-top:var(--header-h)}
.fv-hero{padding:7rem 5rem 5rem;background:var(--charcoal);position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr 0.9fr;gap:5rem;align-items:center;min-height:80vh}
.fv-hero::before{content:'FIRST VISIT';font-family:var(--serif);font-size:9rem;font-weight:300;color:rgba(201,169,110,0.04);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;line-height:1}
.fv-hero-content{position:relative;z-index:1}
.fv-hero-form{background:rgba(255,255,255,0.04);border:1px solid rgba(201,169,110,0.2);padding:2.5rem;position:relative;z-index:1}
.fv-hero-form-title{font-family:var(--serif);font-size:1.2rem;font-weight:400;color:var(--white);margin-bottom:1.5rem}
.form-input-dark,.form-select-dark{border:none;border-bottom:1px solid rgba(255,255,255,0.15);padding:.55rem 0;font-size:.85rem;font-family:var(--sans);background:transparent;color:var(--white);outline:none;transition:border .2s;width:100%}
.form-input-dark::placeholder{color:rgba(255,255,255,0.3)}
.form-input-dark:focus,.form-select-dark:focus{border-bottom-color:var(--gold)}
.form-select-dark option{background:var(--charcoal);color:var(--white)}
.form-label-dark{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,0.4)}

/* JOURNEY TIMELINE */
.journey-timeline{padding:6rem 5rem;background:var(--nude)}
.timeline{position:relative;max-width:900px;margin:0 auto}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,var(--gold),transparent);transform:translateX(-50%)}
.tl-item{display:grid;grid-template-columns:1fr 80px 1fr;gap:0;margin-bottom:4rem;align-items:start}
.tl-item:nth-child(even) .tl-content{order:3;text-align:left;padding-left:3rem;padding-right:0}
.tl-item:nth-child(even) .tl-empty{order:1}
.tl-item:nth-child(odd) .tl-content{text-align:right;padding-right:3rem}
.tl-center{display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative;z-index:2}
.tl-circle{width:64px;height:64px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.5rem;font-weight:300;color:var(--gold);background:var(--nude)}
.tl-empty{}
.tl-content{padding-top:.75rem}
.tl-step-num{font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:.4rem}
.tl-step-title{font-family:var(--serif);font-size:1.4rem;font-weight:400;color:var(--charcoal);margin-bottom:.6rem;line-height:1.3}
.tl-step-desc{font-size:.82rem;line-height:1.75;color:var(--charcoal-light)}

/* WHAT TO BRING */
.bring-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.bring-item{padding:1.75rem;border:1px solid var(--blush-mid);background:var(--white);display:flex;gap:1rem;align-items:flex-start;transition:all .25s}
.bring-item:hover{border-color:var(--gold);background:var(--nude)}
.bring-icon{width:40px;height:40px;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.bring-icon svg{width:18px;height:18px;stroke:var(--gold);fill:none;stroke-width:1.5}
.bring-title{font-size:.82rem;font-weight:500;color:var(--charcoal);margin-bottom:.35rem}
.bring-desc{font-size:.75rem;line-height:1.65;color:var(--charcoal-light)}

/* REASSURANCE SECTION */
.reassure{background:var(--charcoal);padding:5rem}
.reassure-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:960px;margin:0 auto}
.reassure-item{text-align:center}
.reassure-icon{font-family:var(--serif);font-size:2.5rem;font-weight:300;color:var(--gold);margin-bottom:1rem}
.reassure-title{font-size:.82rem;font-weight:500;color:var(--white);margin-bottom:.4rem}
.reassure-desc{font-size:.75rem;line-height:1.65;color:rgba(255,255,255,0.5)}

@media(max-width:900px){
  .fv-hero{grid-template-columns:1fr;padding:6rem 2rem 3rem}
  .timeline::before{left:32px}
  .tl-item{grid-template-columns:64px 1fr;gap:1.5rem}
  .tl-item:nth-child(even) .tl-content{order:unset;text-align:left;padding-left:0;padding-right:0}
  .tl-item:nth-child(even) .tl-empty{display:none}
  .tl-item:nth-child(odd) .tl-content{text-align:left;padding-right:0}
  .tl-empty{display:none}
  .bring-grid{grid-template-columns:1fr 1fr}
  .reassure-grid{grid-template-columns:1fr 1fr}
  .journey-timeline{padding:4rem 2rem}
  .reassure{padding:4rem 2rem}
}
@media(max-width:640px){.bring-grid,.reassure-grid{grid-template-columns:1fr}}

.fv-hero h1.anim-2 {
  font-family: var(--serif);
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--white);
  line-height: 1.1;
  margin-bottom: 1.25rem;
}
.fv-hero h1 em {
  font-style: italic;
  color: var(--gold);
}
.fv-hero-lead.anim-3 {
  font-size: 0.92rem;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.65);
  max-width: 480px;
  margin-bottom: 2rem;
}
.fv-hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.fv-form-note {
  font-size: 0.62rem;
  color: rgba(255, 255, 255, 0.3);
  margin-top: 0.75rem;
  line-height: 1.6;
}
.reassure-header {
  margin-bottom: 3rem;
}
.reassure-header h2 {
  font-family: var(--serif);
  font-size: 2.2rem;
  font-weight: 300;
  color: var(--white);
  text-align: center;
}
.reassure-header h2 em {
  font-style: italic;
  color: var(--gold);
}
.fv-timeline-intro {
  text-align: center;
  max-width: 520px;
  margin-bottom: 4rem;
}
.fv-bring-intro {
  max-width: 520px;
  margin-bottom: 3rem;
}
.fv-final-cta {
  background: var(--charcoal);
  padding: 6rem 5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.fv-final-cta-bg {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 18rem;
  font-weight: 300;
  color: rgba(201, 169, 110, 0.03);
  pointer-events: none;
  line-height: 1;
}
.fv-final-cta-inner {
  position: relative;
  z-index: 1;
}
.fv-final-cta h2 {
  font-family: var(--serif);
  font-size: 3rem;
  font-weight: 300;
  color: var(--white);
  margin-bottom: 1rem;
}
.fv-final-cta h2 em {
  font-style: italic;
  color: var(--gold);
}
.fv-final-cta-lead {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.55);
  max-width: 480px;
  margin: 0 auto 2.5rem;
  line-height: 1.8;
}
.fv-final-cta-actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}
.faq-list {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.fv-final-cta-disclaimer {
  font-size: 0.65rem;
  color: rgba(255, 255, 255, 0.25);
  margin-top: 2rem;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}
