@font-face{
  font-family:'Foxbra Wordmark';
  src:url('/fonts/body-grotesque-large-bold.ttf') format('truetype');
  font-weight:700;font-style:normal;font-display:swap;
}
:root{
  --bg:#fdf7f0;
  --ink:#2e2018;
  --accent:#d98a4a;
  --sans:'Manrope', ui-sans-serif, system-ui, sans-serif;
  --mono:'Manrope', ui-sans-serif, system-ui, sans-serif;
  --serif:'Cormorant', Georgia, serif;
  --brand:'Foxbra Wordmark', 'Manrope', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}

/* ===================================================================
 * SHARED DECORATIVE FX (used across every page)
 * =================================================================== */

/* Fine paper grain — adds a tactile, premium feel without heavy assets */
.grain{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.045;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media(prefers-reduced-motion:reduce){.grain{display:none}}

/* Floating ambient shapes layer */
.fx{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fx-shape{position:absolute;will-change:transform;opacity:.5}
.fx-ring{
  border:1.5px solid rgba(217,138,74,.32);border-radius:50%;
}
.fx-ring.thin{border-color:rgba(46,32,24,.14)}
.fx-blob{
  border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(217,138,74,.22), transparent 70%);
  filter:blur(6px);
}
.fx-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.55}
.fx-plus{color:rgba(46,32,24,.22)}
.fx-plus::before,.fx-plus::after{content:"";position:absolute;background:currentColor}
.fx-plus::before{left:50%;top:0;width:1.5px;height:100%;transform:translateX(-50%)}
.fx-plus::after{top:50%;left:0;height:1.5px;width:100%;transform:translateY(-50%)}

@keyframes fxdrift{
  0%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-22px,0) rotate(8deg)}
  100%{transform:translate3d(0,0,0) rotate(0deg)}
}
@keyframes fxspin{to{transform:rotate(360deg)}}
@keyframes fxpulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.12)}}
.anim-drift{animation:fxdrift 16s ease-in-out infinite}
.anim-spin{animation:fxspin 44s linear infinite}
.anim-pulse{animation:fxpulse 6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){
  .anim-drift,.anim-spin,.anim-pulse{animation:none}
}

/* Animated underline for inline links */
.ul{position:relative}
.ul::after{
  content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:100%;
  background:var(--accent);transform:scaleX(0);transform-origin:right;
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.ul:hover::after{transform:scaleX(1);transform-origin:left}

.mono{
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.44em;
  font-size:.66rem;
  font-weight:500;
}

/* nav */
nav{
  position:sticky;top:0;z-index:100;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:20px clamp(20px,5vw,56px);
  background:rgba(253,247,240,.72);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(46,32,24,.1);
}
.wordmark{
  font-family:var(--brand);letter-spacing:.02em;font-weight:700;
  font-size:1.25rem;text-transform:none;
}
.foot-brand .wordmark{letter-spacing:.02em;text-transform:none}
.navlinks{
  display:flex;gap:36px;justify-content:center;
  font-size:.9rem;font-weight:500;
}
.navlinks a{opacity:.72;transition:opacity .25s}
.navlinks a:hover{opacity:1}
.navlinks a.active{opacity:1;color:var(--accent)}
.nav-cta{justify-self:end}
.btn-outline{
  border:1px solid rgba(46,32,24,.32);
  border-radius:999px;padding:10px 22px;
  font-size:.88rem;font-weight:500;
  background:transparent;cursor:pointer;color:var(--ink);
  transition:border-color .25s, background .25s;display:inline-block;
}
.btn-outline:hover{border-color:var(--ink);background:rgba(46,32,24,.05)}
.btn-solid{
  background:var(--ink);color:var(--bg);
  border:1px solid var(--ink);border-radius:999px;
  padding:13px 28px;font-size:.95rem;font-weight:500;
  cursor:pointer;transition:transform .2s, background .25s;
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--serif);
}
.btn-solid:hover{background:#1c130d;translate:0 -2px}
.btn-ghost{
  background:transparent;color:var(--ink);
  border:1px solid rgba(46,32,24,.32);border-radius:999px;
  padding:13px 28px;font-size:.95rem;font-weight:500;
  cursor:pointer;transition:border-color .25s;
  font-family:var(--serif);display:inline-flex;align-items:center;gap:10px;
}
.btn-ghost:hover{border-color:var(--ink)}
@media(max-width:720px){.navlinks{display:none}}

/* reveal on scroll */
.reveal{opacity:0;translate:0 26px;transition:opacity .8s, translate .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;translate:0 0}

/* generic grids + cards (reused across interior pages) */
.cols{display:grid;gap:22px;margin-top:8px}
.cols.two{grid-template-columns:repeat(2,1fr)}
.cols.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.cols.two,.cols.three{grid-template-columns:1fr}}
.card{
  border:1px solid rgba(46,32,24,.16);border-radius:18px;
  padding:30px 28px;background:rgba(255,255,255,.4);
  transition:border-color .3s, background .3s, transform .3s;
}
.card:hover{border-color:rgba(46,32,24,.34);background:rgba(255,255,255,.62);transform:translateY(-3px)}
.card .ico{
  width:44px;height:44px;border-radius:12px;flex:none;margin-bottom:16px;
  background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;
}
.card .ico svg{width:22px;height:22px}
.card h3{font-family:var(--serif);font-weight:600;font-size:1.28rem;margin-bottom:10px;letter-spacing:-.01em}
.card p{font-size:1rem;color:rgba(46,32,24,.78);line-height:1.55}

/* section eyebrow + heading used on content pages */
.section-head{max-width:60ch;margin-bottom:12px}
.section-head .mono{color:var(--accent);display:block;margin-bottom:18px}
.section-head h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.6vw,2.9rem);
  line-height:1.02;letter-spacing:-.02em;
}
.section-head p{margin-top:18px;font-size:1.12rem;color:rgba(46,32,24,.76);line-height:1.55;max-width:60ch}

/* cross-links between product pages */
.crosslinks{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  margin:8px 0 clamp(60px,9vh,110px);
}
.crosslinks.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.crosslinks.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.crosslinks,.crosslinks.four{grid-template-columns:1fr}}
.crosslinks a{
  border:1px solid rgba(46,32,24,.16);border-radius:14px;padding:22px 24px;
  transition:border-color .25s, background .25s, transform .25s;background:rgba(255,255,255,.3);
}
.crosslinks a:hover{border-color:rgba(46,32,24,.4);background:rgba(255,255,255,.55);transform:translateY(-2px)}
.crosslinks .k{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--accent);display:block;margin-bottom:10px;
}
.crosslinks .t{font-family:var(--serif);font-weight:600;font-size:1.2rem;letter-spacing:-.01em}
.crosslinks .t span{color:rgba(46,32,24,.5);font-weight:400}

/* page header */
.page-head{
  padding:clamp(72px,13vh,150px) clamp(20px,6vw,120px) clamp(40px,7vh,80px);
  max-width:1240px;margin:0 auto;
}
.page-head .mono.kicker{color:var(--accent);display:block;margin-bottom:24px}
.page-head h1{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(2.6rem,6vw,5rem);
  line-height:.96;letter-spacing:-.02em;text-wrap:balance;
}
.page-head .lede{
  margin-top:28px;max-width:56ch;font-size:1.2rem;
  color:rgba(46,32,24,.78);line-height:1.55;
}

/* content shell */
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,6vw,120px)}
.narrow{max-width:74ch}

.rule-static{height:1px;background:rgba(46,32,24,.2);margin:0 0 clamp(40px,6vh,72px)}

/* prose (legal + long form) */
.prose{padding-bottom:clamp(60px,10vh,120px)}
.prose h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.5rem,3vw,2.2rem);letter-spacing:-.02em;
  margin:52px 0 16px;line-height:1.1;
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-family:var(--serif);font-weight:600;font-size:1.2rem;
  margin:32px 0 10px;
}
.prose p{font-size:1.05rem;color:rgba(46,32,24,.82);margin-bottom:18px;max-width:70ch}
.prose ul{margin:0 0 18px 1.2em;max-width:70ch}
.prose li{font-size:1.05rem;color:rgba(46,32,24,.82);margin-bottom:10px}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.prose .updated{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(46,32,24,.5);margin-bottom:8px;
}

/* products page cards */
.stack{display:flex;flex-direction:column;gap:26px;padding-bottom:clamp(60px,9vh,110px)}
.pcard{
  border:1px solid rgba(46,32,24,.16);border-radius:20px;
  padding:clamp(30px,4vw,52px);background:rgba(255,255,255,.4);
  display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,56px);
  transition:border-color .3s, background .3s;
}
.pcard:hover{border-color:rgba(46,32,24,.34);background:rgba(255,255,255,.62)}
@media(max-width:720px){.pcard{grid-template-columns:1fr;gap:20px}}
.pcard .idx{
  font-family:var(--mono);font-size:.8rem;color:var(--accent);
  letter-spacing:.1em;padding-top:8px;
}
.pcard .tag{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.24em;
  text-transform:uppercase;color:rgba(46,32,24,.5);display:block;margin-bottom:14px;
}
.pcard h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.4vw,2.6rem);
  letter-spacing:-.02em;line-height:1;margin-bottom:16px;
}
.pcard p{font-size:1.08rem;color:rgba(46,32,24,.8);margin-bottom:14px;max-width:64ch}
.pcard .meta{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;
}
.pcard .pill{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(46,32,24,.72);
  border:1px solid rgba(46,32,24,.2);border-radius:999px;padding:7px 14px;
}

/* contact */
.contact-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);
  padding-bottom:clamp(60px,9vh,110px);align-items:start;
}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;gap:48px}}
.field{margin-bottom:22px}
.field label{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(46,32,24,.6);display:block;margin-bottom:10px;
}
.field input,.field textarea,.field select{
  width:100%;font-family:var(--serif);font-size:1.05rem;color:var(--ink);
  background:rgba(255,255,255,.5);border:1px solid rgba(46,32,24,.22);
  border-radius:12px;padding:14px 16px;transition:border-color .25s, background .25s;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--accent);background:#fff;
}
.field textarea{min-height:150px;resize:vertical}
.form-note{
  font-size:.9rem;color:rgba(46,32,24,.6);margin-top:6px;
}
#formStatus{
  margin-top:18px;font-size:.98rem;color:var(--accent);min-height:1.2em;
}
.info-block{margin-bottom:34px}
.info-block h3{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(46,32,24,.55);margin-bottom:12px;
}
.info-block p,.info-block a{font-size:1.08rem;color:rgba(46,32,24,.85);line-height:1.5}
.info-block a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* footer */
footer{
  border-top:1px solid rgba(46,32,24,.14);
  padding:52px clamp(20px,6vw,120px) 36px;
}
.foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:44px}
.foot-brand{max-width:34ch}
 .foot-brand .wordmark{font-size:1.35rem;margin-bottom:16px;display:block}
.foot-brand p{font-size:.95rem;color:rgba(46,32,24,.66);line-height:1.5}
.foot-cols{display:flex;gap:64px;flex-wrap:wrap}
.foot-col h4{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.24em;
  text-transform:uppercase;color:rgba(46,32,24,.5);margin-bottom:16px;
}
.foot-col a{display:block;font-size:.95rem;color:rgba(46,32,24,.8);margin-bottom:10px;transition:color .2s}
.foot-col a:hover{color:var(--ink)}
.foot-bottom{
  border-top:1px solid rgba(46,32,24,.14);padding-top:22px;
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(46,32,24,.55);
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;translate:0}
  .card:hover{transform:none}
}
