/* ============================================================================
   CELLARHAND · JOIN PAGE STYLES  (used by join.html)
   ----------------------------------------------------------------------------
   • Brand colours / fonts live in the :root block below (TOKENS).
   • Section banners ( ===== form ===== etc.) mark each area.
   SECTION MAP: cursor · masthead · buttons · page · form · footer
   ============================================================================ */

:root{
  --paper:#F7F3EA;
  --ink:#1E1C18;
  --ink-60:rgba(30,28,24,.64);
  --ln:rgba(30,28,24,.2);
  --cream:#F2EFE6;
  --germinal:#AAB877;
  --floreal:#CD927E;
  --messidor:#E49E28;
  --fructidor:#792641;
  --vendemiaire:#B94438;
  --frimaire:#3A3A39;
  --ventose:#775F4C;
  --t-fructidor:#ECE1DB;
  --serif:"Fraunces", Georgia, serif;
  --body:"Tinos", "Times New Roman", Georgia, serif;
  --mast-h:62px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);font-size:1.08rem;line-height:1.82;
  color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  display:flex;flex-direction:column;min-height:100vh;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:2000;
  opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='gr'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='280' height='280' filter='url(%23gr)'/></svg>");
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;}
::selection{background:var(--vendemiaire);color:var(--paper);}
:focus-visible{outline:2px solid var(--vendemiaire);outline-offset:3px;}
h1{font-family:var(--serif);font-weight:540;line-height:1.05;letter-spacing:-0.015em;
  font-size:clamp(2.4rem,4.8vw,3.8rem);}
em{font-style:italic;}
.k{font-family:var(--body);font-weight:700;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;}
.sub{font-style:italic;font-size:clamp(1.2rem,1.9vw,1.45rem);line-height:1.45;color:var(--ventose);}

/* ===== barrel thief cursor ===== */
/* ============================== THE WINE GLASS — empty it tips like a cursor, full it stands and sloshes ============================== */
.has-manicule, .has-manicule *{cursor:none !important;}
.has-manicule input,.has-manicule select,.has-manicule textarea,.has-manicule option{cursor:auto !important;}
#manicule{
  position:fixed;left:0;top:0;z-index:9999;
  width:40px;height:61px;pointer-events:none;opacity:0;
  transition:opacity .25s ease;
}
#manicule.on{opacity:1;}
#manicule .hand{
  width:100%;height:100%;
  transform-origin:18% 10%;
  transform:rotate(-10deg);
  transition:transform .22s cubic-bezier(.34,1.4,.5,1);
  filter:drop-shadow(1px 1.5px 0 rgba(30,28,24,.16));
}
#manicule .wine{
  transform:scaleY(0);transform-box:fill-box;transform-origin:50% 100%;
  transition:transform .4s ease;
}
#manicule .slosh{transform-box:fill-box;transform-origin:50% 62%;}
#manicule.hover .hand{transform:rotate(0deg);}
#manicule.hover .wine{transform:scaleY(1);}
#manicule.hover .slosh{animation:wslosh 2.1s ease-in-out .4s infinite;}
#manicule.press .hand{transform:rotate(-14deg) scale(.97);}
@keyframes wslosh{
  0%,100%{transform:rotate(0deg)}
  28%{transform:rotate(2.6deg)}
  64%{transform:rotate(-2.1deg)}
}

/* ===== masthead ===== */
.masthead{position:sticky;top:0;z-index:50;}
.masthead .bar{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:.5rem clamp(1.2rem,4vw,3rem);min-height:var(--mast-h);
  background:var(--frimaire);
}
.mast-logo img{height:42px;width:auto;}
.navlink{
  font-family:var(--body);font-weight:500;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--cream);opacity:.85;text-decoration:none;transition:opacity .25s ease;
}
.navlink:hover{opacity:1;}

/* ===== buttons ===== */
.btn{
  display:inline-block;font-family:var(--body);font-weight:500;
  font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;
  text-decoration:none;text-align:center;padding:1.1em 2.6em;
  background:var(--vendemiaire);color:var(--paper);
  border:1px solid var(--vendemiaire);
  transition:background-color .3s ease,border-color .3s ease;
  cursor:pointer;
}
.btn:hover{background:var(--fructidor);border-color:var(--fructidor);}
.btn[disabled]{opacity:.6;pointer-events:none;}

/* ===== page ===== */
.page{flex:1;border-left:10px solid var(--frimaire);padding:clamp(4rem,7vw,6.5rem) 0 clamp(5rem,9vw,8rem);}
@media(max-width:700px){.page{border-left-width:8px;}}
.wrapc{max-width:1080px;margin:0 auto;padding:0 clamp(1.2rem,4vw,4rem);}
.join-grid{max-width:680px;}

.sthead{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2.4rem;}
.sleft{display:flex;align-items:flex-start;gap:1.1rem;}
.smark img{height:120px;width:auto;}
.sthead .sdot{flex:none;width:16px;height:16px;border-radius:999px;background:var(--frimaire);margin-top:.2rem;position:relative;}
.sthead .sdot::before{content:"";position:absolute;left:50%;bottom:100%;transform:translateX(-50%);
  width:4px;height:26px;border-radius:2px;background:var(--frimaire);opacity:.55;}
.sthead .sk .k{color:var(--ventose);}
.sthead .sk .month{font-style:italic;font-size:.88rem;color:var(--ink-60);}
.join-head h1{margin-bottom:1.3rem;}
.join-head .sub{margin-bottom:1.3rem;}
.join-head .free{max-width:28em;margin-bottom:2.8rem;line-height:1.85;}


/* ===== form ===== */
.intent{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.6rem;}
.intent button{
  font-family:var(--body);font-weight:500;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  background:transparent;border:1.5px solid var(--ink);border-radius:999px;
  padding:.85em 1.7em;color:var(--ink);cursor:pointer;
  display:flex;align-items:center;gap:.6rem;
  transition:background-color .25s ease,color .25s ease;
}
.intent button .d{width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor;background:transparent;transition:background-color .2s;}
.intent button.sel{background:var(--frimaire);border-color:var(--frimaire);color:var(--cream);}
.intent button.sel .d{background:var(--cream);border-color:var(--cream);}
.fields{display:grid;gap:1.05rem;max-width:560px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
@media(max-width:640px){.frow{grid-template-columns:1fr;}}
.fields input,.fields select{
  width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);
  background:#FCFAF4;border:1.5px solid rgba(30,28,24,.32);border-radius:12px;
  padding:1em 1.2em;transition:border-color .25s ease, box-shadow .25s ease;
  appearance:none;-webkit-appearance:none;
}
.fields input::placeholder{color:rgba(30,28,24,.45);}
.fields select:invalid{color:rgba(30,28,24,.45);}
.fields input:focus,.fields select:focus{
  outline:none;border-color:var(--ventose);
  box-shadow:0 0 0 3px rgba(119,95,76,.16);
}
.selwrap{position:relative;}
.selwrap::after{content:"";position:absolute;right:1.2em;top:50%;
  width:9px;height:9px;border-right:2px solid var(--ink-60);border-bottom:2px solid var(--ink-60);
  transform:translateY(-70%) rotate(45deg);pointer-events:none;}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;}
/* visually-hidden label, still read by screen readers */
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.form-foot{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;margin-top:2rem;}
.form-note{font-style:italic;font-size:.92rem;color:var(--ink-60);}
.form-ok{display:none;padding:2rem 0;}
.form-ok .big{font-family:var(--serif);font-style:italic;font-weight:450;font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.8rem;}
.form-ok .sm{color:var(--ink-60);margin-bottom:1.8rem;}
.ok-back{font-family:var(--body);font-weight:600;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-60);text-decoration:none;border-bottom:1px solid rgba(30,28,24,.25);padding-bottom:.2em;transition:color .25s;}
.ok-back:hover{color:var(--floreal);}
.intent-desc{font-family:var(--body);font-size:.86rem;line-height:1.55;color:var(--ink-60);margin:0 0 1.6rem;max-width:48ch;}
.form-err{display:none;margin-top:1rem;font-size:.95rem;color:var(--fructidor);}
.form-err a{border-bottom:1px solid var(--fructidor);text-decoration:none;}
.sent form,.sent .intent{display:none;}
.sent .form-ok{display:block;}

/* ===== footer ===== */
.footer{background:var(--frimaire);color:var(--cream);
  border-left:10px solid var(--frimaire);
  padding:2rem clamp(1.2rem,4vw,3rem);}
@media(max-width:700px){.footer{border-left-width:8px;}}
.footer-row{max-width:1080px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;
  font-family:var(--body);font-weight:500;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(242,239,230,.75);}
.footer-row .slogan{font-family:var(--serif);font-style:italic;font-weight:440;font-size:1.1rem;
  letter-spacing:.02em;text-transform:none;color:var(--cream);}
.footer-row a{color:var(--cream);text-decoration:none;border-bottom:1px solid rgba(242,239,230,.45);padding-bottom:.2em;transition:color .25s;}
.footer-row a:hover{color:var(--germinal);}
.foot-mails{display:inline-flex;align-items:center;gap:1.2rem;flex-wrap:wrap;}

[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1s ease;}
[data-reveal].in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none;}
  #manicule .hand,#manicule .wine{transition:none;}
  #manicule .slosh{animation:none;}
}
