/* =====================================================
   Affineur Voyages — Private Access
===================================================== */
:root{
  --afv-ink:#353e29;
  --afv-ink-soft:rgba(53,62,41,.65);
  --afv-ink-mute:rgba(53,62,41,.45);
  --afv-line:rgba(53,62,41,.18);
  --afv-line-soft:rgba(53,62,41,.08);
  --afv-bone:#f3efe6;
  --afv-bone-2:#ebe4d2;
  --afv-bone-3:#e3dcc6;
  --afv-gold:#a88553;
  --afv-gold-soft:#c8a877;
  --afv-dark:#1a1e14;
  --afv-ease:cubic-bezier(.2,.7,.2,1);
  --afv-ease-out:cubic-bezier(.16,1,.3,1);
}

body.afv-body{
  margin:0;
  padding:0;
  min-height:100vh;
  background:var(--afv-bone);
  color:var(--afv-ink);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:300;
  font-size:15px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.afv-body *{box-sizing:border-box}
body.afv-body ::selection{background:var(--afv-ink);color:var(--afv-bone)}

.afv-noise{
  position:fixed;inset:0;pointer-events:none;z-index:1;
  mix-blend-mode:multiply;opacity:.18;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='250' height='250'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' seed='7'/><feColorMatrix values='0 0 0 0 .9 0 0 0 0 .88 0 0 0 0 .82 0 0 0 .18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

body.afv-body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(168,133,83,.12), transparent 60%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(168,133,83,.08), transparent 70%);
  pointer-events:none;
}

.afv-back{
  position:fixed;top:32px;left:32px;z-index:10;
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 16px;
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--afv-ink-soft);text-decoration:none;
  border:1px solid transparent;
  transition:color .4s var(--afv-ease),border-color .4s var(--afv-ease),background .4s var(--afv-ease);
}
.afv-back:hover{
  color:var(--afv-ink);
  border-color:var(--afv-line);
  background:rgba(243,239,230,.6);
}
.afv-arrow-left{
  display:inline-block;
  transition:transform .4s var(--afv-ease);
}
.afv-back:hover .afv-arrow-left{transform:translateX(-4px)}

/* WPML language switcher (top-right) */
.afv-langs{
  position:fixed;top:32px;right:32px;z-index:10;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:10px;letter-spacing:.25em;text-transform:uppercase;
}
.afv-lang{
  color:var(--afv-ink-mute);
  text-decoration:none;
  transition:color .3s var(--afv-ease);
  padding:2px 0;
  position:relative;
}
.afv-lang:hover{color:var(--afv-ink)}
.afv-lang.is-active{color:var(--afv-gold)}
.afv-lang-sep{color:var(--afv-line);user-select:none}
@media(max-width:560px){
  .afv-langs{top:18px;right:18px;padding:8px 12px;font-size:9px}
}

.afv-stage{
  position:relative;
  z-index:2;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:80px 24px 48px;
}

.afv-shell{
  width:100%;
  max-width:480px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  animation:afvFadeUp 1.2s var(--afv-ease-out) both;
}

@keyframes afvFadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}

.afv-head{
  margin-bottom:48px;
  width:100%;
}
.afv-logo{display:inline-block;margin-bottom:32px;text-decoration:none;line-height:0}
.afv-logo img{
  height:110px;width:auto;
  opacity:.92;
  transition:opacity .4s var(--afv-ease);
}
.afv-logo:hover img{opacity:1}

.afv-eyebrow{
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:10px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--afv-gold);
  margin:0 0 18px;
}

.afv-display{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-variation-settings:"SOFT" 30,"WONK" 1;
  font-size:clamp(32px,5vw,46px);
  line-height:.95;
  letter-spacing:-.02em;
  color:var(--afv-ink);
  margin:0 0 18px;
}
.afv-line{display:block;overflow:hidden;padding-bottom:.08em}
.afv-line>i{
  display:inline-block;font-style:inherit;
  transform:translateY(110%);
  animation:afvLineUp 1.2s var(--afv-ease-out) .3s forwards;
}
.afv-line.afv-d1>i{animation-delay:.45s}
.afv-italic{
  font-style:italic;
  font-variation-settings:"SOFT" 60,"WONK" 1;
  color:var(--afv-gold);
}
@keyframes afvLineUp{to{transform:translateY(0)}}

.afv-sub{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-weight:300;
  font-variation-settings:"SOFT" 80,"WONK" 1;
  font-size:15px;
  line-height:1.5;
  color:var(--afv-ink-soft);
  max-width:32ch;
  margin:0 auto;
  opacity:0;
  animation:afvFadeIn 1s 1s var(--afv-ease-out) forwards;
}
@keyframes afvFadeIn{to{opacity:1}}

.afv-card{
  width:100%;
  background:rgba(243,239,230,.6);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid var(--afv-line-soft);
  border-radius:2px;
  padding:40px 36px;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 30px 80px -30px rgba(53,62,41,.18);
  position:relative;
  opacity:0;
  animation:afvFadeIn 1s 1.2s var(--afv-ease-out) forwards;
}
.afv-card::before,.afv-card::after{
  content:"";position:absolute;width:14px;height:14px;
  border-color:var(--afv-gold);border-style:solid;border-width:0;
}
.afv-card::before{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}
.afv-card::after{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}

.afv-form{display:flex;flex-direction:column;gap:24px}

.afv-field{
  position:relative;
}
.afv-field label{
  display:block;
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--afv-ink-soft);
  margin-bottom:10px;
  transition:color .3s var(--afv-ease);
  text-align:left;
}
.afv-field input{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--afv-line);
  padding:8px 0 12px;
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:18px;
  color:var(--afv-ink);
  outline:none;
  transition:border-color .4s var(--afv-ease);
  letter-spacing:.01em;
  border-radius:0;
}
.afv-field input:focus{border-bottom-color:var(--afv-ink)}
.afv-field:focus-within label{color:var(--afv-gold)}

.afv-field-line{
  position:absolute;
  left:0;right:0;bottom:0;
  height:1px;
  background:var(--afv-gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .6s var(--afv-ease);
  pointer-events:none;
}
.afv-field:focus-within .afv-field-line{transform:scaleX(1)}

.afv-eye{
  position:absolute;
  right:0;bottom:8px;
  background:none;border:none;
  color:var(--afv-ink-mute);
  cursor:pointer;
  padding:4px;
  display:flex;align-items:center;justify-content:center;
  transition:color .3s var(--afv-ease);
}
.afv-eye:hover{color:var(--afv-ink)}
.afv-eye:focus{outline:none;color:var(--afv-gold)}

.afv-row{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin-top:4px;
  flex-wrap:wrap;
}

.afv-check{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--afv-ink-soft);
  cursor:pointer;
  user-select:none;
  position:relative;
}
.afv-check input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.afv-box{
  width:14px;height:14px;border:1px solid var(--afv-line);
  display:inline-flex;align-items:center;justify-content:center;
  transition:all .3s var(--afv-ease);
  flex-shrink:0;
}
.afv-check input:checked+.afv-box{
  background:var(--afv-ink);
  border-color:var(--afv-ink);
}
.afv-check input:checked+.afv-box::after{
  content:"";width:6px;height:6px;background:var(--afv-bone);
}
.afv-check:hover .afv-box{border-color:var(--afv-ink-soft)}

.afv-link-btn{
  background:none;border:none;
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--afv-gold);
  cursor:pointer;padding:4px 0;
  position:relative;
  transition:color .3s var(--afv-ease);
}
.afv-link-btn::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--afv-ease);
}
.afv-link-btn:hover::after{transform:scaleX(1);transform-origin:left}
.afv-link-btn:focus{outline:none;color:var(--afv-ink)}

.afv-cta{
  position:relative;
  margin-top:12px;
  padding:20px 28px;
  background:var(--afv-ink);
  border:1px solid var(--afv-ink);
  color:var(--afv-bone);
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  overflow:hidden;
  transition:background .5s var(--afv-ease),color .5s var(--afv-ease),border-color .5s var(--afv-ease);
  border-radius:0;
}
.afv-cta::before{
  content:"";position:absolute;inset:0;
  background:var(--afv-gold);
  transform:translateY(101%);
  transition:transform .5s var(--afv-ease);
  z-index:0;
}
.afv-cta:hover::before{transform:translateY(0)}
.afv-cta:hover{border-color:var(--afv-gold)}
.afv-cta-label,.afv-cta-arr{position:relative;z-index:1;transition:transform .4s var(--afv-ease)}
.afv-cta:hover .afv-cta-arr{transform:translateX(6px)}
.afv-cta:focus{outline:none}
.afv-cta:disabled{opacity:.7;cursor:wait}

.afv-cta-loader{
  position:absolute;
  top:50%;left:50%;
  width:18px;height:18px;
  margin:-9px 0 0 -9px;
  border:1px solid rgba(243,239,230,.3);
  border-top-color:var(--afv-bone);
  border-radius:50%;
  opacity:0;
  z-index:2;
  pointer-events:none;
  transition:opacity .3s;
}
.afv-cta.is-loading .afv-cta-label,
.afv-cta.is-loading .afv-cta-arr{opacity:0}
.afv-cta.is-loading .afv-cta-loader{opacity:1;animation:afvSpin .8s linear infinite}
@keyframes afvSpin{to{transform:rotate(360deg)}}

.afv-cta-small{padding:14px 22px;font-size:10px}

.afv-status{
  min-height:0;
  overflow:hidden;
  transition:min-height .4s var(--afv-ease),margin .4s var(--afv-ease);
}
.afv-status.has-msg{min-height:auto;margin-bottom:24px}
.afv-status-inner{
  padding:14px 18px;
  font-size:13px;
  line-height:1.5;
  border:1px solid;
  font-family:'Fraunces',serif;
  font-style:italic;
  font-variation-settings:"SOFT" 60,"WONK" 1;
  animation:afvFadeIn .4s var(--afv-ease-out);
}
.afv-status-inner.is-error{
  color:#7a3f3f;
  border-color:rgba(122,63,63,.25);
  background:rgba(122,63,63,.05);
}
.afv-status-inner.is-success{
  color:var(--afv-gold);
  border-color:rgba(168,133,83,.3);
  background:rgba(168,133,83,.06);
}

.afv-lost-intro{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-variation-settings:"SOFT" 60,"WONK" 1;
  font-size:15px;line-height:1.5;
  color:var(--afv-ink-soft);
  margin:0;
}

.afv-foot{
  margin-top:48px;text-align:center;
  opacity:0;
  animation:afvFadeIn 1s 1.5s var(--afv-ease-out) forwards;
}
.afv-foot-line{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-variation-settings:"SOFT" 80,"WONK" 1;
  font-size:14px;
  color:var(--afv-ink-mute);
  margin:0 0 12px;
}
.afv-foot-meta{
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:10px;letter-spacing:.25em;text-transform:uppercase;
  color:var(--afv-ink-mute);opacity:.6;
  margin:0;
}

.afv-already-in{
  padding:32px;
  border:1px solid var(--afv-line);
  background:rgba(243,239,230,.5);
  font-family:'Fraunces',serif;font-style:italic;
  text-align:center;
  color:var(--afv-ink);
}
.afv-already-in a{color:var(--afv-gold);text-decoration:none;border-bottom:1px solid currentColor}

@media (max-width:560px){
  .afv-stage{padding:88px 18px 32px}
  .afv-card{padding:32px 24px}
  .afv-back{top:18px;left:18px}
  .afv-logo img{height:78px}
  .afv-display{font-size:32px}
  .afv-row{flex-direction:column;align-items:flex-start;gap:12px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
