/* FreeForm Functions — shared site styles */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --cream:#f7f2ea;
  --ink:#1c1a22;
  --ink-soft:#4a4652;
  --indigo:#4B2AC0;
  --violet:#7a2fc2;
  --magenta:#c23e8a;
  --coral:#e2793d;
  --pink:#d6337f;
  --navy:#201d2b;
  --line:rgba(28,26,34,0.14);
  --hero-gradient:linear-gradient(120deg,#3d1f9e 0%,#7a2fc2 45%,#c23e8a 75%,#e2793d 100%);
  --amber-gradient:linear-gradient(90deg,#e2792f,#f2a93e);
  --max:1200px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}

.label{
  font-family:'JetBrains Mono',monospace;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:12px;
  color:var(--ink-soft);
}
.label.on-dark{color:rgba(247,242,234,0.75);}
.label.accent{color:var(--indigo);}

/* ---------- Nav ---------- */
.site-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;
  background:var(--cream);
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:50;
}
.nav-logo{display:flex;align-items:center;gap:8px;}
.nav-logo img{height:26px;width:auto;}
.nav-logo-text{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:0.04em;
}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;}
.nav-links a{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  letter-spacing:0.05em;
  padding:10px 16px;
  border:1px solid transparent;
}
.nav-links a:hover{border-color:var(--line);}
.nav-links a.active{border-color:var(--line);background:rgba(28,26,34,0.04);}
.nav-links a.cta{
  background:var(--ink);color:var(--cream);
  margin-left:6px;
}
.nav-toggle{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ink);}

@media (max-width:820px){
  .nav-links{
    display:none;
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;
    background:var(--cream);border-bottom:1px solid var(--line);
    padding:8px;gap:0;
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:14px 12px;border-bottom:1px solid var(--line);}
  .nav-links a.cta{margin-left:0;text-align:center;margin-top:6px;}
  .nav-toggle{display:block;}
}

/* ---------- Hero (gradient) ---------- */
.hero{
  background:var(--hero-gradient);
  color:var(--cream);
  padding:56px 0 64px;
}
.hero .wrap{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;}
.hero-copy{max-width:720px;}
.hero-eyebrow{margin-bottom:18px;}
.hero h1{
  font-size:clamp(2.6rem,6vw,4.2rem);
  line-height:1.02;
  margin:0 0 22px;
  font-weight:700;
  letter-spacing:-0.01em;
}
.hero p{
  font-size:17px;
  line-height:1.55;
  max-width:520px;
  margin:0 0 14px;
  color:rgba(247,242,234,0.92);
}
.hero-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}
.btn{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:14px 22px;
  border:1px solid currentColor;
  display:inline-block;
  white-space:nowrap;
}
.btn-solid{background:var(--cream);color:var(--ink);border-color:var(--cream);}
.btn-solid:hover{background:transparent;color:var(--cream);}
.btn-outline{background:transparent;color:var(--cream);}
.btn-outline:hover{background:rgba(247,242,234,0.12);}
.btn-dark{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.btn-dark:hover{opacity:0.85;}
.hero-mark{height:110px;width:auto;opacity:0.95;flex-shrink:0;}
@media (max-width:700px){
  .hero .wrap{flex-direction:column;}
  .hero-mark{height:64px;order:-1;}
}

/* ---------- Ticker ---------- */
.ticker{
  background:var(--indigo);
  border-top:3px solid var(--coral);
  border-bottom:3px solid var(--coral);
  overflow:hidden;
  white-space:nowrap;
}
.ticker-track{
  display:inline-flex;
  animation:scroll 34s linear infinite;
  padding:10px 0;
}
.ticker-track span{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--cream);
  padding:0 18px;
  text-transform:uppercase;
}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- Stats ---------- */
.stats{
  display:flex;
  border-top:1px solid var(--line);
  margin-top:0;
}
.stats .wrap{display:flex;padding:44px 24px;gap:0;}
.stat{flex:1;padding-right:24px;}
.stat + .stat{border-left:1px solid var(--line);padding-left:24px;}
.stat-num{font-size:2.6rem;font-weight:700;line-height:1;margin-bottom:8px;}
.stat:nth-child(1) .stat-num{color:var(--indigo);}
.stat:nth-child(2) .stat-num{color:var(--pink);}
.stat:nth-child(3) .stat-num{color:var(--coral);}
.stat-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.06em;color:var(--ink-soft);text-transform:uppercase;}
@media (max-width:700px){
  .stats .wrap{flex-direction:column;gap:20px;}
  .stat + .stat{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:20px;}
}

/* ---------- Section basics ---------- */
section{padding:64px 0;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;flex-wrap:wrap;}
.section-head h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:10px 0 0;font-weight:700;}
.section-head .label{margin-bottom:0;}

/* rows list (three shapes on home) */
.rows{border-top:1px solid var(--line);}
.row-item{
  display:grid;grid-template-columns:220px 1fr 120px;gap:24px;
  padding:26px 0;border-bottom:1px solid var(--line);align-items:start;
}
.row-item h3{margin:0;font-size:1.3rem;}
.row-item p{margin:0;color:var(--ink-soft);line-height:1.5;font-size:15px;}
.row-item .row-link{
  font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.05em;
  color:var(--indigo);text-align:right;align-self:center;
}
@media (max-width:760px){
  .row-item{grid-template-columns:1fr;gap:8px;}
  .row-item .row-link{text-align:left;}
}

/* banner (one-stop shop / purple cta strips) */
.banner{background:linear-gradient(120deg,var(--indigo),var(--violet));color:var(--cream);}
.banner .wrap{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:64px 24px;}
.banner p{font-size:clamp(1.2rem,2.4vw,1.7rem);line-height:1.35;margin:0;font-weight:500;}
@media (max-width:700px){.banner .wrap{grid-template-columns:1fr;gap:14px;}}

/* gallery grid */
.gallery{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:14px;}
.gallery .g-large{grid-row:1 / 3;}
.g-slot{
  background:#efeae1;border:1px dashed var(--line);
  min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  color:var(--ink-soft);font-size:13px;text-align:center;padding:20px;
}
.g-slot svg{opacity:0.55;}
.gallery img{width:100%;height:100%;object-fit:cover;}
@media (max-width:760px){
  .gallery{grid-template-columns:1fr;grid-template-rows:none;}
  .gallery .g-large{grid-row:auto;}
}

/* footer signup band */
.signup{background:var(--amber-gradient);color:var(--ink);}
.signup .wrap{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:52px 24px;flex-wrap:wrap;}
.signup h2{font-size:2rem;margin:0 0 10px;font-weight:700;}
.signup p{margin:0;max-width:360px;font-size:14px;color:rgba(28,26,34,0.75);}
.signup-form{display:flex;gap:0;}
.signup-form input{
  font-family:'JetBrains Mono',monospace;font-size:13px;
  padding:14px 16px;border:1px solid var(--ink);background:rgba(247,242,234,0.5);
  min-width:220px;
}
.signup-form button{
  font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:0.06em;
  padding:14px 22px;background:var(--ink);color:var(--cream);border:1px solid var(--ink);cursor:pointer;
}
.signup-note{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(28,26,34,0.6);margin-top:8px;}
@media (max-width:700px){.signup-form{flex-direction:column;}.signup-form input{min-width:0;}}

/* site footer */
.site-footer{background:var(--amber-gradient);border-top:1px solid rgba(28,26,34,0.15);}
.site-footer .wrap{
  display:flex;justify-content:space-between;align-items:center;padding:22px 24px;flex-wrap:wrap;gap:14px;
}
.footer-logo{display:flex;align-items:center;gap:8px;}
.footer-logo img{height:22px;}
.footer-logo-text{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;line-height:1.2;}
.footer-links{display:flex;gap:18px;flex-wrap:wrap;list-style:none;margin:0;padding:0;}
.footer-links a{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.04em;}
.footer-copy{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(28,26,34,0.65);}

/* ---------- Inner page hero (no gradient, just cream) ---------- */
.page-hero{padding:56px 0 40px;border-bottom:1px solid var(--line);}
.page-hero .wrap{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.2rem);line-height:1.05;margin:14px 0 20px;font-weight:700;}
.page-hero p{max-width:560px;color:var(--ink-soft);line-height:1.55;font-size:16px;}
.page-hero img.deco{width:180px;height:auto;flex-shrink:0;}
@media (max-width:700px){.page-hero .wrap{flex-direction:column;}}

/* two-col cards (A/B/C/D on events) */
.cards-2col{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);}
.card-2{padding:32px 32px 32px 0;border-bottom:1px solid var(--line);}
.card-2:nth-child(odd){border-right:1px solid var(--line);padding-right:32px;}
.card-2:nth-child(even){padding-left:32px;}
.card-2 h3{margin:12px 0 8px;font-size:1.3rem;}
.card-2 p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.5;}
@media (max-width:760px){
  .cards-2col{grid-template-columns:1fr;}
  .card-2:nth-child(odd){border-right:none;padding-right:0;}
  .card-2:nth-child(even){padding-left:0;}
}

/* services menu grid (12 items) */
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);}
.menu-item{padding:26px 24px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.menu-item:nth-child(3n){border-right:none;}
.menu-item h4{margin:10px 0 8px;font-size:1.05rem;}
.menu-item p{margin:0;color:var(--ink-soft);font-size:13.5px;line-height:1.5;}
.tag-included{
  display:inline-block;margin-top:10px;background:var(--coral);color:var(--ink);
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.05em;text-transform:uppercase;
  padding:4px 8px;
}
@media (max-width:900px){.menu-grid{grid-template-columns:repeat(2,1fr);}.menu-item:nth-child(3n){border-right:1px solid var(--line);}.menu-item:nth-child(2n){border-right:none;}}
@media (max-width:600px){.menu-grid{grid-template-columns:1fr;}.menu-item{border-right:none !important;}}

/* dark process section */
.process{background:var(--navy);color:var(--cream);}
.process .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:30px;}
.step-num{font-size:2rem;font-weight:700;}
.step-num.c1{color:var(--indigo);}
.step-num.c2{color:var(--pink);}
.step-num.c3{color:var(--coral);}
.step-num.c4{color:#8b7bd8;}
.process h4{margin:10px 0 8px;font-size:1.05rem;}
.process p{margin:0;color:rgba(247,242,234,0.72);font-size:13.5px;line-height:1.5;}
.process hr{border:none;border-top:1px solid rgba(247,242,234,0.15);margin:0;}
@media (max-width:760px){.process .steps{grid-template-columns:1fr 1fr;row-gap:28px;}}

/* inquiry split */
.inquiry{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.inquiry h2{font-size:2rem;margin:0 0 14px;font-weight:700;}
.inquiry p{color:var(--ink-soft);line-height:1.55;margin:0 0 20px;}
@media (max-width:760px){.inquiry{grid-template-columns:1fr;}}

/* freefarm hero split */
.ff-hero{background:var(--hero-gradient);color:var(--cream);}
.ff-hero .wrap{display:grid;grid-template-columns:420px 1fr;gap:40px;padding:48px 24px;align-items:center;}
.ff-hero img{border:1px solid rgba(247,242,234,0.25);}
.ff-hero h1{font-size:clamp(2rem,4.4vw,3rem);margin:14px 0 16px;font-weight:700;line-height:1.08;}
.ff-hero p{color:rgba(247,242,234,0.9);line-height:1.55;margin:0 0 22px;max-width:480px;}
@media (max-width:820px){.ff-hero .wrap{grid-template-columns:1fr;}}

/* schedule tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;}
.tab-btn{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;
  padding:10px 14px;border:1px solid var(--line);background:transparent;cursor:pointer;color:var(--ink);
}
.tab-btn.active{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.schedule-frame{border:1px solid var(--line);margin-top:24px;}
.schedule-frame img{width:100%;}
.schedule-panel{display:none;}
.schedule-panel.active{display:block;}
.schedule-note{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--ink-soft);margin-top:12px;}

/* info table */
.info-table{border-top:1px solid var(--line);}
.info-row{display:grid;grid-template-columns:160px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);}
.info-row .k{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.06em;color:var(--ink-soft);text-transform:uppercase;}
.info-row .v{font-weight:600;}
.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;}
@media (max-width:820px){.two-col{grid-template-columns:1fr;}}

/* about */
.about-hero .wrap{display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:center;}
.about-hero img{border:1px solid var(--line);}
@media (max-width:820px){.about-hero .wrap{grid-template-columns:1fr;}.about-hero img{order:-1;max-width:220px;}}
.band-photo{width:100%;height:420px;object-fit:cover;object-position:center 30%;}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid var(--line);padding-top:32px;margin-top:0;}
.trio h3{margin:0 0 10px;font-size:1.15rem;}
.trio p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.5;}
@media (max-width:760px){.trio{grid-template-columns:1fr;gap:24px;}}
.involve{background:linear-gradient(120deg,var(--violet),var(--magenta));color:var(--cream);}
.involve-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid rgba(247,242,234,0.25);padding-top:28px;margin-top:28px;}
.involve-grid h4{margin:0 0 8px;font-size:1.05rem;}
.involve-grid p{margin:0;color:rgba(247,242,234,0.82);font-size:14px;line-height:1.5;}
@media (max-width:760px){.involve-grid{grid-template-columns:1fr;gap:22px;}}
